저는 C++에서 가장 경험이 많지 않지만, 이처럼 간단한 함수가 제대로 작동하는 데 문제가 있다는 것에 놀랐습니다. 내가 바라는 것은 사용자의 입력을 받아서 (예기치 않은 입력으로 인해 충돌을 일으키지 않고) 정수를 얻은 다음 그 값을 호출 함수에 반환하는 함수입니다. 특수 문자 나 공백을 허용해서는 안됩니다. 기본적으로, 나는 단지 내가 아래에 게시합니다 자바 상당처럼되고 싶어 :C++ getInt() 함수 (자바에 해당하는 것이 있습니다)
public static int getInt()
{
boolean isNum = false; //test variable
String str; //to hold input
do
{
str = keyboard.nextLine();
if (!(isNum = str.matches("\\d+")))
{
System.out.println("Enter a valid whole number, try again.");
}
} while(!isNum);
return Integer.parseInt(str);
}
을 당신이 직면하고있는 * 구체적인 * 문제는 무엇입니까? (일명 "우리는 당신을 위해 코드를 작성하지 않을 것"). –
cin >> intValue는 어떨까요? 너에게 효과가 없어? –
cin >> int;를 사용합니다. 예상되는 입력이 입력되는 한 작동합니다. 텍스트 문자를 입력하면 무한 루프에 빠지게되는데 이는 피하려고하는 것입니다. –