一个非常简单的C程序
#include<stdio.h>
//输入一个小写字母,不正确则再次输入
void main()
{
char small;
while(1)
{
printf("Please Input a small char:");
scanf("%c",&small);
if(small>='a'&&small<='z')
break;
else
printf("Input Error. Please try again!\n");
}
}
程序执行后,如果输入字符不正确 输出输入语句会重复执行一次,请问为什么?
应如何修改?
[解决办法]
scanf("%c\n",&small);
[解决办法]
scanf("%c", &small);
fflush(stdin);
或者
getch()
或者C++的cin>>small
[解决办法]
在输入的时候缓冲区读取了一个字符和一个输入符(比如你输入之后按了enter键)
则输入缓冲区存在两个字符'你输入字符','\n'
应该清空缓冲区 fflush(stdin);
或者设置分隔符 scanf("%c\n",&small);
[解决办法]
scanf()的问题
重复输入是因为上一次正确输入的时候输入的回车键导致的。
改成getch()就好了
[解决办法]
这种小case,还用得着劳动星羽大哥出马?嘿嘿...
#include <stdio.h>//输入一个小写字母,不正确则再次输入int main(){ char small; while(1) { printf("Please Input a small char: "); scanf("%c", &small); fflush(stdin); if(small >= 'a' && small <= 'z') break; else printf("Input Error. Please try again!\n"); } return 0;}