2010-09-03 6 views
0

Если я передаю эту программу строку, как в входе, она дает мне очень странные выходы. Как мне это сделать? Я хотел бы просто сказать, что на консуле была ошибка.Странные выходы с простой арифметикой C++

#include <cstdlib> 
#include <iostream> 

using namespace std; 

int main() 

{ 
    cout << endl; 
    cout << "Homework (out of 70 pts): " ; 
    int HW ; 
    cin >> HW ; 

    cout << "Midterm (out of 100 pts): " ; 
    int MT ; 
    cin >> MT ; 

    cout << "Final (out of 100 pts): " ; 
    int F ; 
    cin >> F ; 
    cout << endl; 

    int S; 
    S = HW + MT + F; 



    cout << "Score:  " << S << endl; 
    cout << endl; 

    system("pause"); 
} 
+2

Что именно было странно и какая ошибка вы попали на консоль? – viaclectic

+0

Вы говорите, что вы ввели, скажем, «foo» на один из числовых входов и получили нечетные результаты? –

+0

Возможный дубликат [Как проверить числовой ввод C++] (http://stackoverflow.com/questions/514420/how-to-validate-numeric-input-c) –

ответ

4

При вводе значения, cin не ожидает, например, строки вместо номера, ничего не будет прочитан в вашей переменной и cin будет установлен флаг ошибки, что позволит предотвратить любые дополнительные материалы. См. my answer to another question по той же теме.

Смежные вопросы