C, unix 및 i로 응용 프로그램을 작성하는 기능은 입력이 유효 할 때까지 사용자 입력을 요청합니다. - 시간루프가 C에서 예상보다 많이 실행됩니다.
int inputX()
{
int result;
char input;
while(1)
{
printf("Input x (a, b, c, d, e, f, g, h) :");
scanf("%c", &input);
result = validChar(input);
if (result >= 0)
{
return result;
}
else
{
printf("Invlid input. Lets try again.\n");
}
}
}
validChar() 검사를 입력이 인 경우 : 바로 갈 수 있습니다. 입력하면 모든 것이 정상입니다. 예를 들어. 1 출력
Input x (a, b, c, d, e, f, g, h) :1
Invlid input. Lets try again.
Input x (a, b, c, d, e, f, g, h) :Invlid input. Lets try again.
Input x (a, b, c, d, e, f, g, h) :
심지어 시도 슬립()이지만 didnt 한 작업 .. C가 까다 롭다 : |
이 질문에 'C++'태그가 붙은 이유는 무엇입니까? –
입력 버퍼에 일부 데이터가 남아있는 것 같습니다. 두 번째 반복에서'input'의 내용을 검사 했습니까? 그것은 당신에게 많은 것을 말할 것입니다 ... –
[C loop prints strings twice? (scanf ("% c")를 사용하여)] (http://stackoverflow.com/questions/9421926/c-loop-prints-string-twice-using-scanfc) –