c输入输出的有关问题,搞不明白
发布时间: 2012-12-16 12:02:32 作者: rapoo
c输入输出的问题,搞不明白
代码如下:
double x,y;
while((scanf("%lf%lf",&x,&y)!=2)||x==0||y==0)
{
printf("!");
scanf("%*s");
printf("?");
}
为什么当我输入是:1空格0回车时,程序只输出"!",接着再输入一个数才显示"?",搞不明白啊!
[最优解释]
x==0
[其他解释]
用fflush(stdio);
[其他解释]
你的scanf("%*s")语句的问题。
当你输入1空格0后,开始执行while循环体中的语句,printf("!");
然后scanf("%*s")等待你的输入。完成后在执行下条printf语句。
你这种方法貌似不能达到清空缓冲流中的非法输入的目的吧。。
[其他解释]我也没见过这种清空缓冲流的方法啊
[其他解释]1、你这个代码不知所云,根本不能清空缓冲流。清空应该用fflush(stdin)
2、你这个代码就是先输入2个数,然后进入循环,执行第一个printf,然后再输入一个数,接着执行第二个printf
3、建议你看看msdn或者其他的scanf的例子,看看正确的用法