Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++, konsola] Program nie działa prawidłowo, gdy poda się znak zamiast liczby

Ostatnio zmodyfikowano 2013-05-11 21:32
Autor Wiadomość
pawelw141
Temat założony przez niniejszego użytkownika
[C++, konsola] Program nie działa prawidłowo, gdy poda się znak zamiast liczby
» 2013-05-11 21:28:17
Napisałem kalkulator, ale mam z nim pewien problem.
Po wprowadzeniu za x, bądź x1 np jakiejś litery zamiast liczby program się krzaczy. Jestem początkujący więc proszę o wyrozumiałość.
C/C++
#include <iostream>
using namespace std;
int x = 0;
double x1 = 0;
double x2 = 0;
double x3 = 0;
char flag = 'y'; //wykonywanie bądź nie programu patrz pętla if
//int flag=1;

int main() {
    char flag = 'y'; //wykonywanie bądź nie programu patrz pętla if
   
    do {
        cout << "==============================\n";
       
       
        ffflag:
        cout << "choose operation:\n\t1-addition\n\t2-subtraction\n\t3-division\n\t4-multiplication\n\t5-square\n\t6-square root\n\n";
        cin >> x;
       
        switch( x )
        {
        case 1:
            printf( "put x1\n" );
            cin >> x1;
            printf( "put x2\n" );
            cin >> x2;
            x3 = x2 + x1;
            break;
           
        case 2:
            printf( "put x1\n" );
            cin >> x1;
            printf( "put x2\n" );
            cin >> x2;
            x3 = x1 - x2;
            break;
           
        case 3:
            printf( "put x1\n" );
            cin >> x1;
            printf( "put x2\n" );
            cin >> x2;
            x3 = x2 / x1;
            break;
           
        case 4:
            printf( "put x1\n" );
            cin >> x1;
            printf( "put x2\n" );
            cin >> x2;
            x3 = x2 * x1;
            break;
           
        case 5:
            printf( "put x1\n" );
            cin >> x1;
            x3 = x1 * x1;
            break;
           
        case 6:
            printf( "put x1\n" );
            cin >> x1;
            sqrt( x1 );
            break;
            default:
            cout << "mistake command, try again\n";
            goto ffflag;
            break;
           
           
           
        }
        cout << "oto wynik:\n\n" << x3 << endl << endl;
        cout << "wanna try again? Y/N\n";
        cin >> flag;
       
       
        cout << "==============================\n";
    }
    while( flag == 'y' || 'Y' );
   
    cout << "==============================\n";
    system( "pause" );
    return 0;
   
}
P-82726
pekfos
» 2013-05-11 21:32:02
Nie sprawdzasz poprawności wczytanych danych.
» Kurs C++ » Poziom 1Obsługa strumienia wejściowego lekcja
P-82727
« 1 »
  Strona 1 z 1