c 语言 菜鸟问题
while(scanf("%d%d",&a,&b)!=EOF)为啥可以这样使用啥意思具体是谢谢...
while(scanf("%d %d",&a,&b)!=EOF)
为啥可以这样使用
啥意思具体是
谢谢 展开
为啥可以这样使用
啥意思具体是
谢谢 展开
4个回答
展开全部
1. scanf 函数原型
int scanf( const char *format, ... );
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。
其调用格式为: scanf("<格式化字符串>",<地址表>);
函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。
2. scanf的返回值
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如: scanf("%d,%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
且返回值为int型.
3. 所以while(scanf("%d %d",&a,&b)!=EOF) 的意思就是说 当读入a和b的值没有遇到错误或者没有遇到end of file时, 。。。
int scanf( const char *format, ... );
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。
其调用格式为: scanf("<格式化字符串>",<地址表>);
函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。
2. scanf的返回值
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如: scanf("%d,%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
且返回值为int型.
3. 所以while(scanf("%d %d",&a,&b)!=EOF) 的意思就是说 当读入a和b的值没有遇到错误或者没有遇到end of file时, 。。。
展开全部
scan()函数有返回值,正常时返回成功读入数据的个数,失败(这个失败令人费解)时,返回EOF(End Of File) = -1,在语句while(scanf("%d %d",&a,&b) != EOF)中,用scanf()函数的返回值与EOF比较,不同时,则表示读入成功(这可不一定可靠),问题是,你怎么能够提供这个EOF呢?
所以建议这样使用:
while(scanf("%d %d",&a,&b) == 2)
表示成功读入两个整数时,则继续,反之则结束循环,那么又怎样结束循环呢?只需输入任意一个或多个(如果你愿意的话)英文字母即可。
所以建议这样使用:
while(scanf("%d %d",&a,&b) == 2)
表示成功读入两个整数时,则继续,反之则结束循环,那么又怎样结束循环呢?只需输入任意一个或多个(如果你愿意的话)英文字母即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf()函数是有返回值的,返回值等于你输入值的个数,例如scanf("%d %d",&a,&b)输入两个整型数之后的返回值是2,2当然不等于无法读取更多资料。所以循环可以一直执行。想结束循环在windows中按Ctrl+z.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
EOF=-1;
scanf();函数出错会返回-1,即EOF。
scanf();函数出错会返回-1,即EOF。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询