c++ 숫자만 입력받기 _ cin.clear() cin.ignore()
Study Room1./C/C++/MFC/Verilog 2012. 9. 15. 13:41 |c++ 숫자만 입력받기 _ cin.clear() cin.ignore() c++ 숫자만 입력받기 _ cin.clear() cin.ignore() 숫자만 입력 c++ cin.clear(); cin.ignore();
c++ 숫자만 입력받기 _ cin.clear() cin.ignore()
C++ 과제를 하다가 다음과 같은 문제에 봉착하였다.
while문을 통하여, 숫자가 아닌 경우에는 다시 입력을 받는 방식인데,
관련 코드 부분만 보자면,
cout << "first input : " ;
cin >> inputNum1;
while(1){
if(inputNum1 >= 0 && inputNum1 <= 9){
break;
}
cout << "re-first input : " ;
cin >> inputNum1;
}
문제는 입력을 숫자가 아닌 다른 키값이 들어오면, 다시 입력을 받을 수 있는 상태가 아닌,
계속해서 cout상태가 무한 루프로 도는 것이였다.
기억을 되살려보니, 예전에 C언어를 할 때는 아마 buffer 문제와 관련해서 fflush()를 해주었던 기억이 있었는데,
여기서는 fflush()를 넣어도 안되었음.
구글링 검색결과 다음과 같이 고치면, 고쳐짐
cout << "first input : " ;
cin >> inputNum1;
while(1){
if(inputNum1 >= 0 && inputNum1 <= 9){
break;
}
cin.clear();
cin.ignore();
cout << "re-first input : " ;
cin >> inputNum1;
}
여기를 참고해서 만든 코드는 아니지만, 그래도 구글링을 더 하다보니 이런 블로그 글이 있길래 참고하면 좋을 듯 하다!
주소 : http://bbolmin.tistory.com/17
C++을 처음 접하다 보니 생긴 하나의 해프닝이랄까!?
어쨋든, 요즘 어셈블리에 자바에 안드로이드에 c++에 리눅스에 정신이 없당...ㅜㅜ
한 우물을 잘 파야되는뎅..ㅜㅜ
'Study Room1. > C/C++/MFC/Verilog' 카테고리의 다른 글
[콜콜이의 Daily C언어] 프로그래밍(Programming)의 정의 (0) | 2011.07.25 |
---|---|
[콜콜이의 Daily C언어] visual studio 2008 사용법(실행법) (4) | 2011.07.25 |
[콜콜이의 Daily C언어] 시작에 앞서...한 마디 (5) | 2011.07.25 |
FSM(Finite State Machine) 특강 - (1) (4) | 2011.04.29 |