C++ въпросчета
61 отговора
0 прегледа
C++ въпросчета
Здравейте,
Значи едно време бях доста добър на Паскал,
та не ме питайте защо, ама взех да попрочета основите на С++.
Горе долу взех да сващам различията с Паскала, даже си мисля, че паскал е много по подреден и разбираме език, но както и да е.
няколко източника прехвърлих и се натъкнах на някои неща, които никъде не ги пише как стават, отделно че никъде няма пълен списък на библиотеките и функциите, които предлагат.
Ето първото нещо.
За да въведа един символ от клавиатурата тип char трябва да използвам cin >> ch да речем и да натисна ентер.
В паскал има следната конструкция ch:= keypressed и като чукнеш символа го вкарва в променливата ch без да чака ентер.
Как да направя това в С++ ???
Второ:
Как да позиционирам мястото на курсора преди да въведа или изведа данни от клавиатурата.
Нещо като паскалското gotoxy(5,3); да речем.
Трето:
Може ли С при конзолно приложение да минава в графичен режим като Паскала?
Ще бъда благодарен на всички отговорили, и още по-благодарен ако ми посочите някой побългарен Хелп за С++, с всички описани команди.
Моля да подходите към темата не както обикновено
Значи едно време бях доста добър на Паскал,
та не ме питайте защо, ама взех да попрочета основите на С++.
Горе долу взех да сващам различията с Паскала, даже си мисля, че паскал е много по подреден и разбираме език, но както и да е.
няколко източника прехвърлих и се натъкнах на някои неща, които никъде не ги пише как стават, отделно че никъде няма пълен списък на библиотеките и функциите, които предлагат.
Ето първото нещо.
За да въведа един символ от клавиатурата тип char трябва да използвам cin >> ch да речем и да натисна ентер.
В паскал има следната конструкция ch:= keypressed и като чукнеш символа го вкарва в променливата ch без да чака ентер.
Как да направя това в С++ ???
Второ:
Как да позиционирам мястото на курсора преди да въведа или изведа данни от клавиатурата.
Нещо като паскалското gotoxy(5,3); да речем.
Трето:
Може ли С при конзолно приложение да минава в графичен режим като Паскала?
Ще бъда благодарен на всички отговорили, и още по-благодарен ако ми посочите някой побългарен Хелп за С++, с всички описани команди.
Моля да подходите към темата не както обикновено
Re: C++ въпросчета
1. getch()
2. нямам идея
3. от поне 10 години компютрите бачкат само в графичен режим, текста по екрана се рисува.
NE SUTOR ULTRA CREPIDAM
2. нямам идея
3. от поне 10 години компютрите бачкат само в графичен режим, текста по екрана се рисува.
NE SUTOR ULTRA CREPIDAM
Re: C++ въпросчета
Благодаря, но... 1. не работи.
Ползвам едно DevC++ би трябвало за такива елементарни работи да става. То отначало ги дели приложенията на конзолни и за windows.
Ето го примерчето:
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
char ch;
ch = '\0';
while (ch != 'q')
{
// gotoxy(9,9);
cout << "Hello ! This is a console app." << endl;
cout << "To create a console, go to Project Options and select" << endl;
cout << "\'Win32 Console\'." << endl;
cout << "Press q to ch " << endl;
// cin >> ch;
getch(ch);
// ch = getchar();
}
return 0;
}
Ползвам едно DevC++ би трябвало за такива елементарни работи да става. То отначало ги дели приложенията на конзолни и за windows.
Ето го примерчето:
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
char ch;
ch = '\0';
while (ch != 'q')
{
// gotoxy(9,9);
cout << "Hello ! This is a console app." << endl;
cout << "To create a console, go to Project Options and select" << endl;
cout << "\'Win32 Console\'." << endl;
cout << "Press q to ch " << endl;
// cin >> ch;
getch(ch);
// ch = getchar();
}
return 0;
}
Re: C++ въпросчета
#include "conio.h"
в началото изисква
а, и не getch(ch), a ch=getch()
и накрая, но на първо място по важност, забрави за "книга на български за С++"
не че няма, има, обаче за какво ти е? ще научиш С++ и какво ще правиш с него?
NE SUTOR ULTRA CREPIDAM
в началото изисква
а, и не getch(ch), a ch=getch()
и накрая, но на първо място по важност, забрави за "книга на български за С++"
не че няма, има, обаче за какво ти е? ще научиш С++ и какво ще правиш с него?
NE SUTOR ULTRA CREPIDAM
Редактирано от zaphod на
Re: C++ въпросчета
Тръгна, ама пак чака Ентер.
Идеята е програмата да продължи веднага след чукане на клавиш.
Идеята е програмата да продължи веднага след чукане на клавиш.
Re: C++ въпросчета
да не се бъркаш с getchar? getch не чака ентер
NE SUTOR ULTRA CREPIDAM
NE SUTOR ULTRA CREPIDAM
Re: C++ въпросчета
{и накрая, но на първо място по важност, забрави за "книга на български за С++"
не че няма, има, обаче за какво ти е? ще научиш С++ и какво ще правиш с него?
}
Не точно книга ми трябва, може и в електронен вид. Трябва ми описание на всчки команди, които мога да използвам, като тва getch() и в коя библиотека го има, ама съм дрът вече за английски.
То тва е проблема на всички книги - може да изчетеш 1000 стр. делфи, обаче отде вземат примерно strtofloat и списък с подобни работи никъде няма.
не че няма, има, обаче за какво ти е? ще научиш С++ и какво ще правиш с него?
}
Не точно книга ми трябва, може и в електронен вид. Трябва ми описание на всчки команди, които мога да използвам, като тва getch() и в коя библиотека го има, ама съм дрът вече за английски.
То тва е проблема на всички книги - може да изчетеш 1000 стр. делфи, обаче отде вземат примерно strtofloat и списък с подобни работи никъде няма.
Re: C++ въпросчета
Когато бях млад и ползвах тоз изик:
[линк]
[линк]
Revolution, the only solution,
The armed response of an entire nation
System of a Down P.L.U.C.K.
[линк]
[линк]
Revolution, the only solution,
The armed response of an entire nation
System of a Down P.L.U.C.K.
Re: C++ въпросчета
В отговор на:Горе долу взех да сващам различията с Паскала, даже си мисля, че паскал е много по подреден и разбираме език, но както и да е.
Нищо не си разбрал. Къде ли се пъхаш между шамарите въобще...
По пътя по който си тръгнал ще започнеш да разбираш малко от програмиране след 10 години.
Re: C++ въпросчета
Да, бе, затуй в тъпото С няма аналог на gotoxy.
И от девет дерета вода ще докарат за да обяснят как да се объркват типовете данни. Например във float да вкараш int.
Няма такива простотии в паскала, ще си следиш променливите кви са и толкоз.
Как може да има while и в същото време do while (аналогично на repeat until в паскал), че да се чудиш като видиш while за како е турено там.
Както споменах интересува ме в някаква степен конзолното (досовско) програмиране на С.
Нека мине малко време и може да споделя защо.

И от девет дерета вода ще докарат за да обяснят как да се объркват типовете данни. Например във float да вкараш int.
Няма такива простотии в паскала, ще си следиш променливите кви са и толкоз.
Как може да има while и в същото време do while (аналогично на repeat until в паскал), че да се чудиш като видиш while за како е турено там.
Както споменах интересува ме в някаква степен конзолното (досовско) програмиране на С.
Нека мине малко време и може да споделя защо.
Re: C++ въпросчета
Не ни интересува защо. Намери си някой да ти свърши работата за един ден, вместо да се моташ 6 месеца и накрая - едно голямо нищо.
Re: C++ въпросчета
Да, бе, затуй в тъпото С няма аналог на gotoxy.
баща ми е качвал 600 кила тухли в трабант, ферарито има ли аналог на багажника на трабанта?
NE SUTOR ULTRA CREPIDAM
баща ми е качвал 600 кила тухли в трабант, ферарито има ли аналог на багажника на трабанта?
NE SUTOR ULTRA CREPIDAM
Re: C++ въпросчета
Ами сега приятелю, как да ти кажа - нямам работа за 1 ден.
Ако имах щях да си я напиша перфектно на паскал.
Кажи как в Досовско приложение да си позиционирам текста и няма да Ви досаждам повече
Ако имах щях да си я напиша перфектно на паскал.
Кажи как в Досовско приложение да си позиционирам текста и няма да Ви досаждам повече
Re: C++ въпросчета
Кажи как в Досовско приложение да си позиционирам текста и няма да Ви досаждам повече
чрез писане директно в екранната памет. намира се в сегмент b800
NE SUTOR ULTRA CREPIDAM
чрез писане директно в екранната памет. намира се в сегмент b800
NE SUTOR ULTRA CREPIDAM
Re: C++ въпросчета
>>Да, бе, затуй в тъпото С няма аналог на gotoxy. >>
Стандартната C библиотека има минималното количество код който е необходим и е generic достатъчно за да ти свърши повечето работа. Работата с конзолата е изнесена навън (в други библиотеки) тъй като имаш много работа с различни по вид терминали и само би утежнило самият език.
Имаш достатъчно код за да реализираш обичайните си задачи с езика, и ако искаш нещо по така, намери си библиотека... Пълно е с такива...
ПС:
Това <conio.h> ако не се лъжа, го има в библиотеката само на Майкрософт и Борландското Ц... Ако искаш да се компилира нейде другаде, по добре не го ползвай.
ПС2:
gotoxy() под Уиндоус можеш да реализираш лесно викайки подходящите Win32API функции, не мога да ти дам пример, защото не се сещам, но ги има. провери в MSDN-а
---
Боговете се хранят с вяра, а вярващите с надежди.
Стандартната C библиотека има минималното количество код който е необходим и е generic достатъчно за да ти свърши повечето работа. Работата с конзолата е изнесена навън (в други библиотеки) тъй като имаш много работа с различни по вид терминали и само би утежнило самият език.
Имаш достатъчно код за да реализираш обичайните си задачи с езика, и ако искаш нещо по така, намери си библиотека... Пълно е с такива...
ПС:
Това <conio.h> ако не се лъжа, го има в библиотеката само на Майкрософт и Борландското Ц... Ако искаш да се компилира нейде другаде, по добре не го ползвай.
ПС2:
gotoxy() под Уиндоус можеш да реализираш лесно викайки подходящите Win32API функции, не мога да ти дам пример, защото не се сещам, но ги има. провери в MSDN-а
---
Боговете се хранят с вяра, а вярващите с надежди.
Редактирано от bhdz на
Re: C++ въпросчета
SetConsoleCursorPosition е за конзола под виндовс, ама за дос не знам как е.
NE SUTOR ULTRA CREPIDAM
NE SUTOR ULTRA CREPIDAM
Re: C++ въпросчета
Благодаря ти Zaphod, благодарение на теб стана работата.
Сега, ако ми кажеш и как да изчистя екрана...
Нещо като Home в бейсика и ClrScr в паскала...
Ето:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
using namespace std;
// **************************
void gotoxy( int column, int line )
{
COORD coord;
coord.X = column;
coord.Y = line;
SetConsoleCursorPosition(
GetStdHandle( STD_OUTPUT_HANDLE ),
coord
);
}
int wherex()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD result;
if (!GetConsoleScreenBufferInfo(
GetStdHandle( STD_OUTPUT_HANDLE ),
&csbi
))
return -1;
return result.X;
}
int wherey()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD result;
if (!GetConsoleScreenBufferInfo(
GetStdHandle( STD_OUTPUT_HANDLE ),
&csbi
))
return -1;
return result.Y;
}
// ************************
int main (int argc, char *argv[])
{
char ch;
ch = '\0';
while (ch != 'q')
{
gotoxy(4,4);
printf ( "Hello ! This is a console app." );
gotoxy(4,6);
printf ( "To create a console, go to Project Options and select" );
gotoxy(4,8);
printf ( "\'Win32 Console\'." );
gotoxy(4,10);
printf ( "Press q to quit " );
// cin >> ch;
ch=getch();
// ch = getchar();
}
return 0;
}
Сега, ако ми кажеш и как да изчистя екрана...
Нещо като Home в бейсика и ClrScr в паскала...
Ето:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
using namespace std;
// **************************
void gotoxy( int column, int line )
{
COORD coord;
coord.X = column;
coord.Y = line;
SetConsoleCursorPosition(
GetStdHandle( STD_OUTPUT_HANDLE ),
coord
);
}
int wherex()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD result;
if (!GetConsoleScreenBufferInfo(
GetStdHandle( STD_OUTPUT_HANDLE ),
&csbi
))
return -1;
return result.X;
}
int wherey()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD result;
if (!GetConsoleScreenBufferInfo(
GetStdHandle( STD_OUTPUT_HANDLE ),
&csbi
))
return -1;
return result.Y;
}
// ************************
int main (int argc, char *argv[])
{
char ch;
ch = '\0';
while (ch != 'q')
{
gotoxy(4,4);
printf ( "Hello ! This is a console app." );
gotoxy(4,6);
printf ( "To create a console, go to Project Options and select" );
gotoxy(4,8);
printf ( "\'Win32 Console\'." );
gotoxy(4,10);
printf ( "Press q to quit " );
// cin >> ch;
ch=getch();
// ch = getchar();
}
return 0;
}
Редактирано от ferdi_2OO на