【发布时间】:2019-09-16 01:52:33
【问题描述】:
所以我正在用 c 编写程序的一部分,我需要用户输入一个字符(A、B 或 C)。如果输入小写,输入多个字符,或者输入超出上述范围的空格或字母,应输出“Answer is invalid. Please try again”。直到他们输入一个有效的答案。
我遇到了一个问题,它会为他们在一行中输入的每个字符输出错误消息。所以说如果他们输入“asdas”,它会输出五次错误信息。有没有办法确保错误信息只被输出一次?我正在考虑让程序只读取输入的句子中的第一个字符,但我不确定。
我还应该提到,这个任务的一个要求是 getAnswer() 函数返回一个字符。
char getAnswer(){
char usersAnswer;
while(1){
printf("Enter your answer (A, B, C): \n");
scanf("%c", &usersAnswer);
if(checkAnswer(usersAnswer)){
return usersAnswer;
return 0;
}else{
printf("Answer is invalid. Please try again. \n");
}
}
}
【问题讨论】:
-
请不要在标题前面添加“c -”。这就是标签的用途。
标签: c while-loop character