如何在 Xcode 中用 C 语言执行文件 I/O?

发布于 2024-12-04 23:51:26 字数 472 浏览 0 评论 0原文

我使用 Xcode 作为 C 的 IDE。

#include <stdio.h>

int main (int argc, const char * argv[])
{
    FILE *file;
    int numberTest = 0;
    file = fopen("fileTest.dat", "r");
    if (file == NULL)
    {
        printf("File not found!\n");
    }
    fscanf(file, "%d", &numberTest);
    printf("I read the number: %d\n", numberTest);
    fclose(file);
    return 0;
}

该文件位于我的 Xcode 包中,并且与 HDD 中项目的其余部分位于同一文件夹中。问题是 fopen() 不断返回 NULL。

I am using Xcode as my IDE for C.

#include <stdio.h>

int main (int argc, const char * argv[])
{
    FILE *file;
    int numberTest = 0;
    file = fopen("fileTest.dat", "r");
    if (file == NULL)
    {
        printf("File not found!\n");
    }
    fscanf(file, "%d", &numberTest);
    printf("I read the number: %d\n", numberTest);
    fclose(file);
    return 0;
}

The file is in my Xcode bundle and is in the same folder as the rest of the project in the HDD. The problem is that fopen() keeps returning NULL.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深陷 2024-12-11 23:51:26

您假设启动可执行文件时该文件位于当前工作目录中,但事实可能并非如此,而且这始终是一个错误的假设,即使在某些情况下碰巧是这样。

作为快速修复,您现在可以硬编码文件的绝对路径,例如

file = fopen("/Users/me/Desktop/fileTest.dat", "r");

You're assuming that the file is in the current working directory when the executable is launched, which it probably isn't, and which is always a bad assumption anyway, even if it happens to be true in some cases.

As a quick fix you can just hard code the absolute path to the file for now, e.g.

file = fopen("/Users/me/Desktop/fileTest.dat", "r");
﹏雨一样淡蓝的深情 2024-12-11 23:51:26

找不到该文件,因为运行可执行文件时它不在您的路径上。您需要将该文件添加到您的目标,以便在构建源代码时将其复制到构建目录。

The file is not found because it is not on your path when the executable is run. You will need to add the file to your target so that it is copied to the build directory when you build your sources.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文