前世后载 2022-10-30 07:55 采纳率: 100%
浏览 99
已结题

visual studio的scanf为什么返回EOF错误,或者读入不了EOF

问题遇到的现象和发生背景

先看下面这段代码,很简单的C语言代码,其中while(scanf("%d",&n) != EOF)在VS里面运行起来就是不行,不知道为什么?输入了三遍ctrl+z才结束了循环,然后我看我朋友用codeblocks输入Z^(ctrl+z)就结束了循环,属于正常的。
会不会是Visual Studio编译器的问题?有没有好人帮忙看一下

代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int n;
    while (scanf("%d", &n) != EOF)
    {
        printf("%d", n);
    }
    return 0;
}
运行结果及报错内容

img

img

单步调试的结果是这样:

img



)

我的解答思路和尝试过的方法

不知道是不是编译器本身的问题?也或者是VS的某处设置,但是我的VS在其他方面运行起来一直没有问题。

我想要达到的结果

哪位好人能解答一下吗?我的VS编译器scanf怎么就不能够正常读入EOF,又为什么输入了三次之后成功读入了EOF

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2022-10-30 10:42
    关注

    是Visual Studio编译器的问题,你的理解完全正确,VS编译器scanf不正常读入EOF,需连续输入三次才会成功,目前没有找到解决这个bug的办法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月23日
  • 已采纳回答 11月15日
  • 创建了问题 10月30日

悬赏问题

  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错
  • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
  • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
  • ¥100 matlab2009 32位一直初始化
  • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数