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",&a);
一般来说,在问题正文的文本中包含错误/警告总是一个好主意。
scanf
从stdin
收集输入;在 Sublime 的输出面板中执行的程序没有连接到它们的stdin
;因此他们永远挂着等待您无法提供的输入。您假设您的代码已损坏并尝试再次运行它,但之前的版本已经在运行,该版本已锁定文件,并且链接器无法重新链接。极其常见的问题(但在 SO 上找到它非常困难)。问题的答案是不要直接在 Sublime 中运行交互式程序。
【参考方案1】:
您可能在 cmd 中打开了另一个 g++ 实例。您可能正在命令提示符中运行由 g++ 生成的“a.exe”。由于文件已经存在并且正在被使用,所以不能创建同名文件。
【讨论】:
以上是关于scanf 调用时出现“无法打开输出文件”错误的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 依赖注入错误:尝试激活时无法解析服务类型 - 调用视图组件时出现错误 [重复]
为啥在我的 Web 服务中调用此方法时出现错误“无法将类型 'void' 隐式转换为 'string'?
“调用线程无法访问此对象,因为不同的线程拥有它”从 WPF 中的不同线程更新 UI 控件时出现错误