2014-09-22 6 views
1

다음은 VS2010에서 코딩 된 VC++ 코드의 일부입니다. 나는 문자 대신 option의 값으로 정수를 삽입하면 내가 ctrl+c을 사용할 때까지VC++의 첫 번째 예외 예외

do 
{ 

    std:: cout << "\nOPTIONS:\n"; 
    std:: cout << "\n1. Get all session data.\n"; 
    std:: cout << "\n2. Get Nth session data\n"; 
    std:: cout << "\n3. Get Next session data\n"; 
    std:: cout << "\n4. Get Previous session data\n"; 
    std:: cout << "\n5. Get total no of sessions\n"; 
    std:: cout << "\n6. Exit\n"; 
    std:: cout << "\nEnter Your Option: "; 

    std :: cin >> option; 

    switch(int(option)) 
    { 
     case 1: 
      { 
       data.ReadSetupFile(); 
       break; 
      } 

     case 2: 
      { 
       break; 
      } 

     ..... 
     ...... 

     case 6: 
      { 

       std::cout<<"\nARE YOU SURE YOU WANT TO EXIT?(Press y for yes and any other character for no)\n"; 
       cin >> opt; 
       break; 
      } 

     default: 
      { 
       std::cout << "\nINAVALID OPTION!!TRY AGAIN\n"; 
       break; 
      } 

    } 

    std::cout<<"\nDO YOU WANT TO CONTINUE?(Press y for yes and any other character for no)\n"; 
    cin >> opt; 

    }while(opt=='y'); 

그러나, 메뉴 옵션을 종료하지 않고 출력 콘솔에 인쇄에 것입니다.

First-chance exception at 0x75936da7 in SetupAPIReader.exe: 0x40010005: Control-C.

왜 실행이 종료되지 않은 :이 휴식 전략을 사용에 나는 같은 메시지가?

+1

'Control-C'를 눌렀는데 프로그램에 'Control-C'예외가 발생한 이유를 묻습니다. –

+0

'Ctrl-C'에 대한 제어 처리기를 설정 했습니까? – Niall

+0

실은 의심의 여지가 그것이 종료되지 않는 이유입니까? – Jackzz

답변

0

주어진 입력이 예상 유형이 아니면 failbitcin으로 설정됩니다. 이 비트를 검사하고 지우기는 값을 변수의 초기 값으로 재설정합니다.