Sprawdzanie czy został wciśnięty Enter
Ostatnio zmodyfikowano 2018-03-25 22:08
piotrusinio Temat założony przez niniejszego użytkownika |
Sprawdzanie czy został wciśnięty Enter » 2018-03-23 20:49:29 Witam. Tworzę program sprawdzający, czy punkt leży na prostej funkcji liniowej. Chciałbym, żeby po wciśnięciu Entera zamiast wpisania liczby pętla do while powtarzała się i znów pytała o liczbę. Wiem tylko, że problem leży w if'ie ale nie wiem jak go naprawić :/ Oto kod: #include <iostream>
using namespace std; int main() { float a = 0, b = 0, x = 0, y = 0; do { cout << "Podaj a:"; cin >> a; if(( int ) a == 13 ) cout << endl; } while(( float ) a == 13 ); do { cout << endl << "Podaj b:"; cin >> b; if(( int ) b == 13 ) cout << endl; } while(( int ) b == 13 ); do { cout << endl << "Podaj x:"; cin >> x; if(( int ) x == 13 ) cout << endl; } while(( int ) x == 13 ); do { cout << endl << "Podaj y:"; cin >> y; if(( int ) y == 13 ) cout << endl; } while(( int ) y == 13 ); if(( y ) ==(( a * x ) + b ) ) cout << endl << "Punkt nalezy do wykresu"; else cout << "Punkt nie nalezy do wykresu"; return 0; } |
|
YooSy |
» 2018-03-23 22:31:08 Wiem tylko, że problem leży w if'ie |
To niewiele. Nie zrobisz tego w prosty sposób, bo dla typów liczbowych przy wprowadzaniu danych możesz wcisnąć enter milion razy, a program i tak będzie czekał, aż podasz jakąś wartość. Można wczytywać dane do stringa (można podać pusty wciskając enter) i sprawdzić czy nie jest pusty. Jeśli tak powtórzyć operację wczytywania. Lub: Obsługa klawiatury za pomocą <conio.h> |
|
piotrusinio Temat założony przez niniejszego użytkownika |
» 2018-03-25 13:06:30 Ok zrobiłem to teraz tak: #include <iostream> #include <cstdlib>
using namespace std; int main() { string a, b, x, y; do { cout << "Podaj a:"; cin >> a; if( a == "" ) cout << endl; } while( a == "" ); do { cout << endl << "Podaj b:"; cin >> b; if( b == "" ) cout << endl; } while( b == "" ); do { cout << endl << "Podaj x:"; cin >> x; if( x == "" ) cout << endl; } while( x == "" ); do { cout << endl << "Podaj y:"; cin >> y; if( y == "" ) cout << endl; } while( y == "" ); float a1 = atof( a.c_str() ), b1 = atof( b.c_str() ), x1 = atof( x.c_str() ), y1 = atof( y.c_str() ); if(( y1 ) ==(( a1 * x1 ) + b1 ) ) cout << endl << "Punkt nalezy do wykresu"; else cout << "Punkt nie nalezy do wykresu"; return 0; } Ale nadal nie działa tak jak bym chciał :/ |
|
skovv |
» 2018-03-25 13:14:47 |
|
piotrusinio Temat założony przez niniejszego użytkownika |
» 2018-03-25 13:26:00 Tak mam zrobione i nie działa. |
|
pekfos |
» 2018-03-25 13:30:33 Użyj getline(), nie >>. |
|
piotrusinio Temat założony przez niniejszego użytkownika |
» 2018-03-25 13:34:29 W jaki sposób? |
|
pekfos |
» 2018-03-25 13:36:26 |
|
« 1 » 2 |