Funkcja getch

Jaka jest różnica między getch, a _getch ?

No jakoś nie mówi mi to za dużo

#define pozwala korzystać z jednej nazwy zamiast drugiej. To jest to samo, nazwa z _ jest tylko dla kompatybilności.

czyli jak zrobię

to zamieni mi to 1 na 2 i będzie git ?

Nie, możesz korzystać zarówno z jednej jak i z drugiej funkcji. Nie ma różnicy, której użyjesz.

Mi chodzi tylko czy coś takiego jest dopuszczalne

Szczerze nie wiem, ale skoro masz w conio.h coś takiego:

#define _getch getch /* for MSC compatibility */

To jaki sens ma robienie tego na odwrót, skoro to nic do kodu nie wniesie ? Czyżbyś miała jakiś błąd podczas kompilacji ?

Trochę to śmieszne ale jak wpisałem #define getch _getch to mój kompilator właśnie nie miał żadnego problemu z kompilacją i nie wywalał mi błędu

I można zauważyć że działa tak jak myślałem w 2 strony gdy mam getch i wpiszę

to zamieni to 1 na 2 i odwrotnie gdy zamienie getch na _getch i zmienię definicję

Daj: #pragma warning(disable:4996) i powinno działać :stuck_out_tongue:

Chodź jeden kij jak działa to możesz zostawić. Btw po co korzystać z getch ?

hmm uczę się dopiero C++ i to dobra metoda by zatrzymać działanie programu no i do tego dochodzi to że nie znam lepszej :smiley:

Pomaga odczytać wynik działania mojego ultra skomplikowanego programu który dodaje :smiley:

Jeśli używasz strumieni (cout, cin), najlepiej kończyć program:

cin.sync();cin.get();

Ewentualnie:

system("pause");

Jednak ten drugi tylko do czasu, aż nie zaczniesz pracować na strumieniach.

A dlaczego najlepiej ? No już korzystam od dawna ze strumieni.

Ponieważ jest to zgodne ze standardami. Możesz kod który napiszesz przenieść sobie na inny system (conio.h jest tylko na windows)

Dobrze wiedzieć ale na razie nie planuję zmiany systemu może w przyszłości ale jak zacząłem uczyć się obiektów to jakoś mi się nie śpieszy już w ogóle bo zacząłem się gubić. Jak na początku szło szybko i było miło to teraz się skończyło :smiley: No a getch() jest takie złe ?

Nie dość, że nie działa na wszystkich systemach. To sypie dziwnymi błędami. Jak korzystasz z strumieni możesz wywalić conio.h więc twój program będzie się szybciej kompilować.

A czemu nie mogę użyć samego cin.get(); ? tylko tego ciągu razem z czyszczeniem strumienia który występuje na początku ?

Bowiem w wypadku nie zsynchronizowania strumienia program może się samoczynnie zakończyć w wypadku pobrania niestandardowej wartości.

Ok wielkie dzięki za odpowiedzi wiele się dziś nauczyłem ^^