사용자가 하나의 char 만 입력하면 C 언어로 어떻게 처리 할 수 있습니까? 이것에 나의 시도는 아래에있다 그러나 무섭게 실패했다. 내가 온라인으로 읽은 것에서는이 일을 성취하기 위해 함수를 사용하거나 fgets를 사용할 수 있다고 들었지만 그 방법을 알 수는 없었다.어떻게하면 사용자가 한 문자 만 입력 할 수 있습니까?
do
{
geussNumber += 1;
printf("Enter guess number %d\n", geussNumber);
scanf(" %c", &geussLetter);
scanf ("%c", &inputViolation);
if (isalpha(geussLetter) == 0)
{
printf("You did not enter a letter\n");
}
else if (inputViolation == true)
{
printf("You eneterd more than one letter\n");
}
else
{
inputLoopEnd = 1;
}
}
while(inputLoopEnd == false);
'inputViolation == true'는 끔찍한 것처럼 보입니다 ... 적어도 어떤 문자와 비교되어야한다고 생각합니다. – MikeCAT
아니요, gets()는 버퍼 오버런의 가능성을 피할 수 없으므로 사용할 수 없습니다. C99에서는 더 이상 사용되지 않으며 C11에서는 삭제됩니다. – MikeCAT
입력 문자열에 0 (true) 이외의 값을 읽으면 사용자가 하나 이상의 char을 입력했다고 생각했습니다. –