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

CS50作业问题:处于文件所在目录却提示No such file or Directory

CS50习题文件找不到问题解决

核心错误原因

看你的环境截图,当前目录下的目标文件名是plates,但你运行程序时传入的参数是plates.txt——系统找不到带.txt后缀的文件,所以抛出No such file or Directory错误。

快速修复方法

运行程序时使用正确的文件名:

./read plates

代码额外优化建议

你的代码还有两个需要修复的问题,避免后续出现异常:

  • 添加文件打开检查:fopen可能因权限、文件不存在等原因返回NULL,直接使用会导致程序崩溃,补充检查逻辑:
    FILE *infile = fopen(argv[1], "r");
    if (infile == NULL)
    {
        printf("无法打开指定文件。\n");
        return 1;
    }
    
  • 修复内存指向问题:plates数组存储的都是buffer的地址,循环结束后所有元素会指向最后一次读取的内容。需要为每个车牌号分配独立内存,比如用strdup:
    plates[idx] = strdup(buffer);
    // 注意:程序结束前要调用free(plates[i])释放每个元素的内存,避免内存泄漏
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:37:12