iostream
От: GiDRAvlic Латвия  
Дата: 29.04.03 09:19
Оценка:
Здравстуйте!
Никак не могу понять(найти решение проблемы) что происходит с потоком вывода при
вводе в 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 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.