MeHow Opublikowano 2 Maja 2005 Zgłoś Opublikowano 2 Maja 2005 (edytowane) Jakiej funkcji użyć do wczytania pojedynczego znaku bez potrzeby naciskania entera. Próbowałem getch(); ale pod unixem nie dziala, a moze ja robie po prostu jakis inny blad :) jesli sie ktos na tym zna, to prosze :) mozna sprawdzic :) #include <iostream>#include <curses.h>using namespace std;class calc { public: calc(); void oblicz( void ); private: double a,b,wynik; char navikey; int znak; char tablica_znakow[5];};calc::calc() { a = 0; b = 0; wynik = 0; znak = 0; navikey = 0; tablica_znakow[0] = '+'; tablica_znakow[1] = '-'; tablica_znakow[2] = '*'; tablica_znakow[3] = '/';} void calc::oblicz( void ) { cout << " kalkulator" << endl; cout << "podaj pierwsza liczbe" << endl; cin >> a; system("clear"); cout << a << endl; cout << "podaj druga liczbe" << endl; cin >> b; system("clear"); cout << a << endl << endl << b << endl; while(1) { system("clear"); cout <<"przy uzyciu lewego navikey wybierz dzialanie" << endl << "aby zaakceptowac wcisnij prawy navikey" << endl; cout << a << endl << tablica_znakow[znak] << endl << b << endl; navikey = getch(); if(navikey == 'l') { break; } if(navikey == 'a') { znak++; if(znak >= 4) { znak = znak%4; } } } if(znak == 0) { wynik = (a+b); } if(znak == 1) { wynik = (a-b); } if(znak == 2) { wynik = (a*b); } if(znak == 3) { wynik = (a/b); } cout << wynik << endl;}int main( void ) { calc kalkulator; kalkulator.oblicz(); getchar();} Edytowane 2 Maja 2005 przez MeHow Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
yasin Opublikowano 2 Maja 2005 Zgłoś Opublikowano 2 Maja 2005 pod unixa prawie wogole nie pisze, ale cos mi swita, ze chyba potrzebna jest Ci biblioteka conio.h Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MeHow Opublikowano 2 Maja 2005 Zgłoś Opublikowano 2 Maja 2005 yasin, no wlasnie rzecz w tym, ze conio.h nie wystepuje pod unixem . :( i nie da sie jej zaincludowac. Staram sie pisac program, ktory symuluje dzialanie telefonu komorkowego, a jesli nie bede mial takiej funkcji, ktora pozwala wczytanie znaku przez jego nacisniecie to bedzie do kitu, gdyz co to za komorka, w ktorej przy pisaniu SMS po wcisnieciu klawisza musze wciskac enter :( . Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MeHow Opublikowano 2 Maja 2005 Zgłoś Opublikowano 2 Maja 2005 problem rozwiazany: void read_scr(int init) { if (init==1) system("/bin/ssty raw -echo"); else system("bin/stty -raw echo");} char getch( void ) { read_scr(1); char c = getchar(); read_scr(0); return c;} Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...