아래 코드를 사용하여 다른 입력을 전달하려고 시도했지만 메시지를 인쇄하지 못했습니다. "죄송합니다. ASCII char을 입력하지 않았습니다. y 또는 n 중 하나만 입력하십시오!" char 타입이 아닌 다양한 Unicode 문자를 입력했습니다 (ALT + 난수, 예 : ™, š, ², Ž, ±). 아무 것도 오류를 생성하지 않았습니다. cin은 자동으로 입력을 무시하거나 무시합니다. ASCII 문자std :: cin이 명령 행에서 사용자 입력을 char 유형의 변수로 전달하지 못합니까?
std::cout << "Would you like to play again? Enter y or n: ";
std::cin >> yOrN;
isChar = std::cin.fail();
//check if the user did not enter an ASCII char, e.g. test with a Unicode character
if (isChar)
{
std::cout << "Oops, you did not enter an ASCII char, let alone one that is y or n!\n";
std::cin.clear();
}
OS : 윈도우 10 64 비트, x64 기반 프로세서 컴파일러 : 비주얼 스튜디오 커뮤니티 2015
나는 비 ASCII 문자를 추출 "검색을 통해이 문제를 해결 할 수 없습니다 cin C++ "에서 처음 세 페이지를 살펴 보겠습니다.
저는 Stack Overflow에서 매우 새로워졌습니다. 이 질문에 대해 규칙이나 행동 강령을 위반 한 경우 용서하십시오. 나는 learncpp.com에서 C++을 배우고 있으며, page의 2 번 질문에 대답하기 위해 자신의 코드를 작성하고 있습니다.
업데이트 : 내 프로그램이 문자가 입력되었는지 여부를 확인할 이유가없는 것 같습니다. 그러나 아마 내가 프로그램에 실제로 필요한 것이 아닌지 너무 많이 생각하지 않았다는 것을 알고 싶어했을 것입니다.
일반'char' :
귀하의 경우, 당신은
y
또는n
에 대해 검증 할 필요가 공통 시스템에서 127을 결코 초과하지 않을 것입니다. –@MM'char'가 실제로 서명되지 않았다면 어떨까요? –
만약 그것이 아니라면? OP는 MSVC++ 2015를 말했습니다. –