scanf 调用时出现“无法打开输出文件”错误

Posted

技术标签:

【中文标题】scanf 调用时出现“无法打开输出文件”错误【英文标题】:"Can't open output file" error on scanf call 【发布时间】:2019-07-07 05:21:55 【问题描述】:

我正在尝试使用文本编辑器 Sublime 在 C 中编写一个简单的代码。 问题是,当我尝试使用 scanf 函数时出现错误。

#include<stdio.h>
#include<stdlib.h>

int main()
    int a;
    scanf("%d",&a);
    printf("testing %d",a);
    return 0;

错误:

c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe:无法打开输出文件cccc.exe : 没有权限 collect2.exe:错误:ld 返回 1 个退出状态

【问题讨论】:

这似乎是一个权限问题 您的代码编译成功,对其进行实时测试:segfault.stensal.com/a/b0nHamZUXjg1hFP4。这不是 C 题,是你的文件权限问题。 尝试省略扫描...a = 42; //scanf("%d",&amp;a); 一般来说,在问题正文的文本中包含错误/警告总是一个好主意。 scanfstdin 收集输入;在 Sublime 的输出面板中执行的程序没有连接到它们的stdin;因此他们永远挂着等待您无法提供的输入。您假设您的代码已损坏并尝试再次运行它,但之前的版本已经在运行,该版本已锁定文件,并且链接器无法重新链接。极其常见的问题(但在 SO 上找到它非常困难)。问题的答案是不要直接在 Sublime 中运行交互式程序。 【参考方案1】:

您可能在 cmd 中打开了另一个 g++ 实例。您可能正在命令提示符中运行由 g++ 生成的“a.exe”。由于文件已经存在并且正在被使用,所以不能创建同名文件。

【讨论】:

以上是关于scanf 调用时出现“无法打开输出文件”错误的主要内容,如果未能解决你的问题,请参考以下文章

从 scanf 读取 C 样式字符串时出现分段错误

ASP.NET Core 依赖注入错误:尝试激活时无法解析服务类型 - 调用视图组件时出现错误 [重复]

为啥在我的 Web 服务中调用此方法时出现错误“无法将类型 'void' 隐式转换为 'string'?

“调用线程无法访问此对象,因为不同的线程拥有它”从 WPF 中的不同线程更新 UI 控件时出现错误

segueing时出现核心数据错误:无法在NSManagedObject类上调用指定的初始值设定项

在 ajax 调用 Mvc-4 应用程序中实现验证时出现错误