C++ въпросчета

61 отговора 0 прегледа
#1

C++ въпросчета

Здравейте,
Значи едно време бях доста добър на Паскал,
та не ме питайте защо, ама взех да попрочета основите на С++.

Горе долу взех да сващам различията с Паскала, даже си мисля, че паскал е много по подреден и разбираме език, но както и да е.


няколко източника прехвърлих и се натъкнах на някои неща, които никъде не ги пише как стават, отделно че никъде няма пълен списък на библиотеките и функциите, които предлагат.


Ето първото нещо.

За да въведа един символ от клавиатурата тип char трябва да използвам cin >> ch да речем и да натисна ентер.
В паскал има следната конструкция ch:= keypressed и като чукнеш символа го вкарва в променливата ch без да чака ентер.
Как да направя това в С++ ???

Второ:
Как да позиционирам мястото на курсора преди да въведа или изведа данни от клавиатурата.
Нещо като паскалското gotoxy(5,3); да речем.

Трето:
Може ли С при конзолно приложение да минава в графичен режим като Паскала?


Ще бъда благодарен на всички отговорили, и още по-благодарен ако ми посочите някой побългарен Хелп за С++, с всички описани команди.

Моля да подходите към темата не както обикновено

Отговор
в отговор на ferdi_2OO #2

Re: C++ въпросчета

1. getch()
2. нямам идея
3. от поне 10 години компютрите бачкат само в графичен режим, текста по екрана се рисува.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на zaphod #3

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;
}

Отговор
в отговор на ferdi_2OO #4

Re: C++ въпросчета

#include "conio.h"
в началото изисква
а, и не getch(ch), a ch=getch()
и накрая, но на първо място по важност, забрави за "книга на български за С++"
не че няма, има, обаче за какво ти е? ще научиш С++ и какво ще правиш с него?




NE SUTOR ULTRA CREPIDAM

Редактирано от zaphod на

Отговор
в отговор на zaphod #5

Re: C++ въпросчета

Тръгна, ама пак чака Ентер.

Идеята е програмата да продължи веднага след чукане на клавиш.

Отговор
в отговор на ferdi_2OO #6

Re: C++ въпросчета

да не се бъркаш с getchar? getch не чака ентер




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на zaphod #7

Re: C++ въпросчета

Стана, много благодаря!

Отговор
в отговор на zaphod #8

Re: C++ въпросчета

{и накрая, но на първо място по важност, забрави за "книга на български за С++"
не че няма, има, обаче за какво ти е? ще научиш С++ и какво ще правиш с него?
}

Не точно книга ми трябва, може и в електронен вид. Трябва ми описание на всчки команди, които мога да използвам, като тва getch() и в коя библиотека го има, ама съм дрът вече за английски.

То тва е проблема на всички книги - може да изчетеш 1000 стр. делфи, обаче отде вземат примерно strtofloat и списък с подобни работи никъде няма.

Отговор
в отговор на ferdi_2OO #9

Re: C++ въпросчета

Когато бях млад и ползвах тоз изик:

[линк]

[линк]

Revolution, the only solution,
The armed response of an entire nation
System of a Down P.L.U.C.K.
Отговор
в отговор на ferdi_2OO #10

Re: C++ въпросчета

В отговор на:

Горе долу взех да сващам различията с Паскала, даже си мисля, че паскал е много по подреден и разбираме език, но както и да е.




Нищо не си разбрал. Къде ли се пъхаш между шамарите въобще...

По пътя по който си тръгнал ще започнеш да разбираш малко от програмиране след 10 години.

Отговор
в отговор на Пaньo Дoнeв #11

Re: C++ въпросчета

Да, бе, затуй в тъпото С няма аналог на gotoxy.
И от девет дерета вода ще докарат за да обяснят как да се объркват типовете данни. Например във float да вкараш int.
Няма такива простотии в паскала, ще си следиш променливите кви са и толкоз.

Как може да има while и в същото време do while (аналогично на repeat until в паскал), че да се чудиш като видиш while за како е турено там.

Както споменах интересува ме в някаква степен конзолното (досовско) програмиране на С.
Нека мине малко време и може да споделя защо.


Отговор
в отговор на ferdi_2OO #12

Re: C++ въпросчета

Не ни интересува защо. Намери си някой да ти свърши работата за един ден, вместо да се моташ 6 месеца и накрая - едно голямо нищо.

Отговор
в отговор на ferdi_2OO #13

Re: C++ въпросчета

Да, бе, затуй в тъпото С няма аналог на gotoxy.
баща ми е качвал 600 кила тухли в трабант, ферарито има ли аналог на багажника на трабанта?




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на BobyB #14

Re: C++ въпросчета

Ами сега приятелю, как да ти кажа - нямам работа за 1 ден.
Ако имах щях да си я напиша перфектно на паскал.

Кажи как в Досовско приложение да си позиционирам текста и няма да Ви досаждам повече

Отговор
в отговор на ferdi_2OO #15

Re: C++ въпросчета

Кажи как в Досовско приложение да си позиционирам текста и няма да Ви досаждам повече
чрез писане директно в екранната памет. намира се в сегмент b800




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на ferdi_2OO #16

Re: C++ въпросчета

>>Да, бе, затуй в тъпото С няма аналог на gotoxy. >>
Стандартната C библиотека има минималното количество код който е необходим и е generic достатъчно за да ти свърши повечето работа. Работата с конзолата е изнесена навън (в други библиотеки) тъй като имаш много работа с различни по вид терминали и само би утежнило самият език.

Имаш достатъчно код за да реализираш обичайните си задачи с езика, и ако искаш нещо по така, намери си библиотека... Пълно е с такива...

ПС:
Това <conio.h> ако не се лъжа, го има в библиотеката само на Майкрософт и Борландското Ц... Ако искаш да се компилира нейде другаде, по добре не го ползвай.

ПС2:
gotoxy() под Уиндоус можеш да реализираш лесно викайки подходящите Win32API функции, не мога да ти дам пример, защото не се сещам, но ги има. провери в MSDN-а
---
Боговете се хранят с вяра, а вярващите с надежди.

Редактирано от bhdz на

Отговор
в отговор на bhdz #17

Re: C++ въпросчета

SetConsoleCursorPosition е за конзола под виндовс, ама за дос не знам как е.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на zaphod #18

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;
}

Редактирано от ferdi_2OO на

Отговор
в отговор на zaphod #19

Re: C++ въпросчета

ами ако е с монохромна видео карта?

май за дос имаше <conio.h>

Отговор
в отговор на ~@!$^%*amp;()_+ #20

Re: C++ въпросчета

за монохромна В000




NE SUTOR ULTRA CREPIDAM
Отговор