This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] "无法从非基元位置加载":在尝试使用 C 中的 fopen()函数从.txt 文件读取时

Guru**** 2577385 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1130427/cannot-load-from-non-primitive-location-while-trying-to-read-from-a-txt-file-using-the-fopen-function-in-c

我在 ARM Cortex-M4处理器上编写嵌入式 C 程序。 我已将 MATLAB 中的数据保存在.txt 文件中、并希望在 C 代码中读取相同的数据。 当我使用 fopen()函数时,会出现 “无法从非基元位置加载”错误。  有人能告诉我我我出了什么问题吗?

FILE *fp = fopen("x_real.txt","r"); Getting NULL pointer here

    // Return if could not open file
    if (fp == NULL)
    {
        printf("Could not open the file");
        return 0;
    }

    do
    {
        // Taking input single character at a time
        char c = fgetc(fp);

        // Checking for end of file
        if (feof(fp))
            break ;

        printf("%c", c);
    }  while(1);

    fclose(fp);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请告诉我 使用 printf 的提示之一是否 解决了问题。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。

    不,他们没有。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    高良

    乔治在外,将于星期二回来

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    乔治可能会有更好的答案、但我会尝试一下。

    我将代码粘贴到 CC1352的空示例中。

    当我运行它时、我转到它尝试打印的行、表示无法打开文件。

    如果我将一个名为 x_real.txt 的文件(其中 abcd 作为内容)放置在与.out 相同的文件夹中、那么我可以看到代码工作正常。

    我的 printf 无法正常工作、但这是另一个问题。  但是、我可以观察变量 c 并查看正在读取的值。

    您的 txt 文件位于何处?

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你。 在本例中、我的.txt 文件是我的.c 文件所在的位置、而我的.out 文件位于一个单独的位置。 将.txt 文件保存在.out 文件所在的位置后、问题得到解决。