Skocz do zawartości
MeHow

Wczytywanie Po Jednym Znaku Podobnego Do Getch();

Rekomendowane odpowiedzi

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 przez MeHow

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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 :( .

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...