You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言调用fopen提示No such file or directory报错怎么解决

C语言fopen报错No such file or directory修复方案

先补充基础错误判断,明确错误原因

你当前的代码未判断fopen的返回值就直接操作,首先补充空指针判断和错误打印,先确认错误的具体触发原因:

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

int main() {
    char string[105];
    // 也可以尝试把路径分隔符换成正斜杠,Windows下fopen兼容这种写法,避免转义错误
    FILE* file = fopen("C:\\Users\\Public\\Documents\\a.txt", "r");
    if (file == NULL) {
        perror("文件打开失败");
        return EXIT_FAILURE;
    }
    while (fgets(string, 100, file)) {
        printf("%s", string);
    }
    fclose(file);
    return 0;
}

常见问题排查项

  • 确认文件实际扩展名:Windows默认隐藏已知文件类型的扩展名,如果你手动新建的是文本文档,实际文件名可能是a.txt.txt而非你以为的a.txt,可以在文件管理器顶部「查看」栏勾选「文件扩展名」,核对实际文件名是否匹配。
  • 测试相对路径验证环境问题:把a.txt放到编译生成的exe同目录下,将fopen的路径参数改为"a.txt",手动双击exe运行测试,如果可以正常打开,说明是路径配置问题:如果是通过IDE直接运行代码,需要检查IDE的运行工作目录配置是否正确;如果是在沙箱/虚拟机/UAC虚拟化环境下运行,程序会被重定向到虚拟存储路径,无法访问真实的系统文件路径。
  • 检查程序架构适配:如果你的设备是64位Windows,编译生成的是32位程序,会触发系统文件系统重定向机制,部分系统路径的访问会被自动跳转,可尝试编译生成和系统架构匹配的64位程序再测试。

内容的提问来源于stack exchange,提问作者Donkey Xot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 17:45:09