|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如果把scanf放在循环for 循环()中的第二个语句上,例如for(;~scanf("%d",a);),输入什么才能使得循环结束,也就是使得scanf返回值为0?
本帖最后由 人造人 于 2017-3-28 17:02 编辑
输入Ctrl+Z 可以使scanf返回-1(在我的环境下是这样)
我的环境下,在stdio.h 头文件中有如下定义
#define EOF (-1)
msdn中,有如下描述
也就是说要让scanf出错的时候退出循环吗?
我是这样写的
- #include <stdio.h>
- int main(void)
- {
- int ret;
- int a;
- for( ; (ret = scanf("%d", &a)) != 0 && ret != EOF ; )
- printf("%d\n", a);
-
- return 0;
- }
复制代码
运行1
- 1
- 1
- 2
- 2
- 3
- 3
- a
- 请按任意键继续. . .
复制代码
运行2
- 1
- 1
- 2
- 2
- 3
- 3
- ^Z
- ^Z
- ^Z
- 请按任意键继续. . .
复制代码
我也不清楚为什么按一次Ctrl+Z 不管用
|
|