programma slaat tilt

Status
Niet open voor verdere reacties.

bjorn1987

Nieuwe gebruiker
Lid geworden
27 dec 2008
Berichten
1
hoe kan ik tegen gaan dat wanneer ik bij het ingeveven van een string waar normaal een integer moest ingegeven worden dat mijn programma dan tilt slaat

int vak;
do{
cout<<"\t in welk vak(1-300):";
cin>>vak;
}while(((1>vak)||(vak>300))&& vak!=0);

dus wanneer ik bij vak een string ingeef zou dit op een of adere manier mijn programma niet mogen laten vast lopen
 
Dit zou moeten werken
Code:
int vak;
do {
        cout << "\t in welk vak(1-300): ";
        if (!(cin >> vak)) {
                cout << "\nGeef een cijfer van 1 tot 300 in: ";
                vak = 0;
        }
while( (vak < 1) || (vak > 300) );
Wanneer cin mislukt, bijvoorbeeld omdat het type dat wordt ingegeven niet overeenkomt met het type dat moet ingelezen worden, geeft deze FALSE terug.

Ik heb je voorwaarde ook vereenvoudigd: Als je waarde 0 is, is ze ook kleiner dan 1, dus dat hoef je niet meer apart te testen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan