我正在创建一个用于生成下一个质数的程序,我需要为此输入用户输入。我正在使用do-while循环,但它不会停止第二次输入输入。请指导我哪里做错了。谢谢!这是我的代码片段
int
main()
{
int val=1;
char input;
do
{
val=nextprime(val);
printf("\n%d\t",val);
printf("Next Prime number? Y or N ");
scanf("%c",&input);
}
while(input != 'N' && input != 'n');
return 0;
}
我得到的输出是:
2 Next Prime number? Y or N y
3 Next Prime number? Y or N
5 Next Prime number? Y or N y
7 Next Prime number? Y or N
11 Next Prime number? Y or N y
13 Next Prime number? Y or N
17 Next Prime number? Y or N y
19 Next Prime number? Y or N
23 Next Prime number? Y or N y
29 Next Prime number? Y or N
31 Next Prime number? Y or N n
您在这里有答案:用C读取单个字符
当您按“ Y”时,按Enter键,它位于输入缓冲区中,并在循环的下一次迭代中读取。
您需要使用:
scanf(" %c",&input);
具有前导空间,可忽略输入缓冲区中的最后一个角色。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句