用C打开和读取文件

时间:2018-01-22 21:35:19

标签: c fopen

我试图打开一个文件,我想把第一行安全到一个char数组。当我运行该程序时,窗口弹出窗口,我收到一条错误消息," * .exe停止工作"。在编译之前,我没有得到特定的错误代码或警告。

在控制台中有以下内容:"处理终止,状态为-1073741510(0分钟,3秒(秒)) " 我使用CodeBlocks作为发行版。

这是我的代码:

dateModified

" tipps.txt"的第一行是:

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

int main()
{
    char buffer[60];
    FILE* ptr = fopen("tipps.txt", "r");
    fgets(buffer, 60, ptr);
    for(int i = 0; i < 60; i++){
        printf("%s", buffer[i]);
    }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

你应该检查错误,以便能够说明为什么程序没有按照你的预期去做,如果它仍然没有按照你的预期去做那么你检​​查你的逻辑,如果你仍然无法找到你可以在Stack Overflow上询问。

您的代码的最小错误检查是

char buffer[60];
FILE *file;

file = fopen("tipps.txt", "r");
if (file == NULL) {
    fprintf(stderr, "error, cannot open `tipps.txt'\n");
    return -1;
}

// Check that `fgets()' did read something, it could fail
// for instance at EOF.
if (fgets(buffer, sizeof(buffer), file) != NULL) {
    // Iterate through the characters until we find
    // the null terminator.
    for (int i = 0; buffer[i] != '\0'; ++i) {
        fputc(buffer[i], stdout);
    }
}

另外,请仔细阅读每个功能的文档。例如printf()。在该链接中,您可以找到其他人,例如fgets()fputc()fopen()

请注意,一切都很重要,参数的含义以及返回值(如果有)的含义。当您认为自己真正理解该功能时,请在代码中开始使用它。