2010-09-03 3 views
0

Si je donne une chaîne à ce programme en entrée, cela me donne des sorties très étranges. Comment puis-je gérer cela? Je voudrais simplement dire qu'il y a eu une erreur sur le consul.Sorties bizarres avec un simple arithmétique 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

Qu'est-ce qui était bizarre et quelle erreur avez-vous eu sur votre console? – viaclectic

+0

Êtes-vous en train de dire que vous avez entré, disons, "foo" à l'une des entrées numériques, et que vous avez obtenu des résultats bizarres? –

+0

duplication possible de [Comment valider l'entrée numérique C++] (http://stackoverflow.com/questions/514420/how-to-validate-numeric-input-c) –

Répondre

4

Lorsque vous entrez une valeur cin ne s'y attend pas, comme une chaîne au lieu d'un numéro, rien ne sera lu dans votre variable et cin va définir un indicateur d'erreur qui empêche toute entrée supplémentaire. Voir my answer to another question sur le même sujet.