Здравстуйте!
Никак не могу понять(найти решение проблемы)
что происходит с потоком вывода при
вводе в 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 >>
Здравствуйте, GiDRAvlic, Вы писали:
GDR>Никак не могу понять(найти решение проблемы) что происходит с потоком вывода при
GDR>вводе в cin любого значения отличного от целочисленного: cin >> myvar //( пременная int)
GDR>Насколько понял при состоянии cin'a ios::failbit последующие вызовы cin'a не приводят к желаемому результату.
Глянь сюда:
Re[3]: Как вернуть состояние потока?Автор: Михаил Можаев
Дата: 02.04.03
... << RSDN@Home 1.0 beta 6a >>
Здравствуйте, Михаил Можаев, Вы писали:
ММ>Глянь сюда: Re[3]: Как вернуть состояние потока?Автор: Михаил Можаев
Дата: 02.04.03
Гы !
Большое спасибо !!! Помогло!
... << RSDN@Home 1.0 beta 6a >>