Здравстуйте!
Никак не могу понять(найти решение проблемы)
что происходит с потоком вывода при
вводе в cin любого значения отличного от целочисленного: cin >> myvar //( пременная int)
Насколько понял при состоянии cin'a ios::failbit последующие вызовы cin'a не приводят к желаемому результату.
Исходник прилагаю.
Заранее спасибо.
#include "stdafx.h"
#include <iostream>
void Part1(void);
void Part2(void);
using namespace std;
int _tmain(int argc, _TCHAR* argv[]){
int Choice;
while(1){
cout << endl
<< "Usage: press a part number:" << endl
<< "1. Part 1" << endl
<< "2. Part 2" << endl
<< "0. Exit" << endl
<< "Your choice : ";
try{
cin.exceptions(ios::failbit);
cin >> Choice;
switch(Choice){
case 1 :
Part1();
break;
case 2 :
Part2();
break;
case 0 :
return 0;
default:
cerr << "Choose correct number !" << endl;
}
}
catch(exception){
cerr << endl
<< "Incorrect input. Input value must be numeric" << endl;
}
}
}
void Part1(void){
cout << endl;
cout << "Part 1" << endl;
}
void Part2(void){
cout << endl;
cout << "Part 2" << endl;
}
... << RSDN@Home 1.0 beta 6a >>