【问题标题】:How can I read from a file in C programming?如何在 C 编程中读取文件?
【发布时间】:2016-11-26 05:58:56
【问题描述】:

我正在尝试从 C 编程中的文件中读取,我认为我做的一切都是正确的,但我得到一个错误:“无法打开文件......”所以它显然没有正确访问文件,我不能找出原因。文件“A00924956Results2016”与我的程序文件位于同一个控制台应用程序文件夹中。所以我不应该使用文件路径对吗?任何帮助将不胜感激。 (我已经简化了我要阅读的内容,以便在继续我的任务之前让它访问文件)。我还将附上我的文件浏览器的屏幕截图。

#include <stdio.h>
#include <math.h>
#include <string.h>

void check(FILE*);

int main()
{

    FILE *fp1;
    char ch, a;

    fp1 = fopen("A00924956Results2016", "r");
    check(fp1);

    fscanf(fp1, "%c", &a);
    printf("First character is %c", a);

    fclose(fp1);

    getchar();
    return 0;
}
void check(FILE *fp1)
{
    fp1 = fopen("A00924956Results2016.dat", "r");
    if (fp1 == NULL)
    {
        printf("Not accessing file properly\n");
    }
}

【问题讨论】:

  • 您是否正在编译并将可执行文件保存在同一目录中?此外,在check() 方法中,仅检查参数 fp1 是否为空。不要尝试再次打开文件。
  • 试试fp1 = fopen("A00924956Results2016.txt", "r");(默认情况下Windows隐藏已知的扩展)你想用这个做什么:fp1 = fopen("A00924956Results2016.dat", "r");?删除它并尝试前者。
  • 另外,发布此类问题时,请尽量缩短代码。从代码中删除所有不相关的内容。始终尝试制作minimal reproducible example
  • 抱歉下次再做。 .dat 是一个错误。我都改成了.txt,还是说不能访问文件!!
  • 请修正您的问题以显示您的最新代码。

标签: c string file file-io


【解决方案1】:

我认为您尝试打开的文件是文本文档。因此在使用 fopen() 函数时,需要使用带有文件名的 .txt 扩展名才能正确打开它。 我认为如果您在打开文件时在文件名末尾添加 .txt 它将正常工作。

【讨论】:

    【解决方案2】:

    在 fopen() 函数中,您需要使用“A00924956Results2016.txt”之类的扩展名写入整个文件名,而不仅仅是“A00924956Results2016”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多