输入验证问题
#include <stdio.h>long get_long(void){
long input;
char ch;
while(scanf("%ld",&input)!=1)
{
while((ch=getchar())!='\n');
putchar(ch);
printf("不是一个正确的值\n请输入一个");
printf("一个正确的类型, such as :25,-178:");
}
return input;
}
int main()
{
int x=3;
printf("%d\r",x);
printf("%d",get_long());
}
这里我输入不符合的类型。
当我输入f 然后按下enter后
缓冲区里是 f\n,这里的这个\n不应该被输出的。
在内层的while中,为什么在f下面多出一行?
{
while((ch=getchar())!='\n');
putchar(ch);
printf("不是一个正确的值\n请输入一个");
printf("一个正确的类型, such as :25,-178:");
} while 后面的分号 本帖最后由 豆嘉木 于 2022-5-23 19:36 编辑
while后面少分号 人造人 发表于 2022-5-23 19:33
while 后面的分号
谢,没有主要到我多加了个;
页:
[1]