C++ cin객체 받아 비교하기
글쓴이: k960903 / 작성시간: 수, 2013/05/01 - 5:25오후
cout<<(일부 생략) "한 판 더 하시겠습니까?(y/n) "; cin>>onemore;//onemore은 char형 switch(onemore){ case 'y': case 'Y': case 'n': case 'N':break; default: cout<<"다사 입력해주세요(y/n)"; cin>>onemore; break; } }while(onemore='y' || onemore=='Y');
여기서 문제는 만약 y나 n이 아닌 yyyn등등 y로 시작하는 문자열을 입력시 무한루프에 빠진다는 것입니다.ㅠㅠ
도대체 사용자에게서 char형으로 단일문자만을 받고, 만약 문자열 입력 시 다시 입력해달라는 문자를 입력해주려면 어떻게 해야하나요?
Forums:
string으로 받고 길이가 2 이상이면 다시 입력을
string으로 받고 길이가 2 이상이면 다시 입력을 요구하세요. 길이가 1이면 첫번째 문자를 가지고 지금 코드 그대로 사용하시면 되겠네요.
무한루프는
while(onemore='y' || ...) 에서 생기는 군요.
onemore == 'y' 로 고친 후 해보세요.
그걸로 해도.... yy하면 무한루프에 걸려요...ㅠ
그걸로 해도.... yy하면 무한루프에 걸려요...ㅠ
댓글 달기