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

Xcode中写入文件后,文件未在项目文件夹及系统中显示

Xcode中fopen创建的文件找不到的解决办法

问题根源

在Xcode中运行C程序时,默认工作目录并非你的项目文件夹,而是Xcode生成的DerivedData(派生数据)目录下的子文件夹。用相对路径(如"Test File.txt")调用fopen创建的文件,都会被写入这个默认目录,所以你在项目文件夹和常规系统搜索里找不到。

另外你的代码存在两处问题:

  • 刚以写入模式创建Test File.txt就立刻以读模式打开,此时文件为空,fscanf会读取失败,Number的值未定义
  • 重复赋值Write_File指针,第一次打开的Test File.txt未关闭就被覆盖,会造成资源泄漏

解决方法

方法1:定位默认工作目录

在代码开头添加以下代码,运行后控制台会打印当前工作目录,前往该路径就能找到生成的文件:

#include <stdio.h>
#include <unistd.h>

int main(void) {
    char cwd[1024];
    if (getcwd(cwd, sizeof(cwd)) != NULL) {
        printf("当前工作目录: %s\n", cwd);
    }
    // 原有代码...
}

方法2:修改Xcode工作目录为项目文件夹

  1. 打开Xcode,点击顶部菜单栏Product → Scheme → Edit Scheme
  2. 在弹出窗口中选择Run → Options标签页
  3. 勾选Working Directory,点击文件夹图标选择你的项目文件夹
  4. 重新运行程序,文件会直接生成在项目文件夹内

方法3:使用绝对路径

直接在fopen中指定文件的绝对路径,例如:

Write_File = fopen("/Users/你的用户名/Desktop/Test File.txt", "w");

注意替换为你自己的实际路径。

代码修复建议

使用文件后务必关闭指针,同时增加文件打开失败的判断,避免异常:

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

int main(void) {
    int Number = 0; // 初始化变量
    FILE* Read_File;
    FILE* Write_File1;
    FILE* Write_File2;

    // 打开并写入第一个文件,关闭后再读取
    Write_File1 = fopen("Test File.txt", "w");
    if (Write_File1 == NULL) {
        perror("无法打开Test File.txt");
        exit(EXIT_FAILURE);
    }
    fprintf(Write_File1, "123");
    fclose(Write_File1);

    // 打开读取文件
    Read_File = fopen("Test File.txt", "r");
    if (Read_File == NULL) {
        perror("无法打开Test File.txt");
        exit(EXIT_FAILURE);
    }
    if (fscanf(Read_File, "%d", &Number) != 1) {
        printf("读取失败\n");
    }
    fclose(Read_File);

    // 打开第二个写入文件
    Write_File2 = fopen("New_File.txt", "w");
    if (Write_File2 == NULL) {
        perror("无法打开New_File.txt");
        exit(EXIT_FAILURE);
    }
    fprintf(Write_File2, "%s", "Test");
    fclose(Write_File2);

    printf("Test\n");
    printf("%d\n", Number);
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:22:56