【问题标题】:"Can't open output file" error on scanf callscanf 调用时出现“无法打开输出文件”错误
【发布时间】: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 中运行交互式程序。

标签: c scanf sublimetext3


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多