能够打开但无法读取文件

时间:2014-06-12 09:59:42

标签: c

我正在尝试使用file = fopen("filename.txt")打开文件,并使用fgetc(file)逐个字符地读取该文件。

打开文件成功,但fgetc()始终返回-1。要查找错误,我尝试使用ferror(),这在使用fgetc后是正确的。但是,这仍然没有提供有关错误发生原因的任何信息。所以我试图使用strerror(errno)来获取有关发生错误的详细信息,但这会返回" No Error"。 有谁知道错误是什么?

以下是代码的相关部分:

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

FILE* file1;
int c;

....
void main(void) {
    file1 = fopen("C:\\Users\\student\\text1.txt", "r");
    if (NULL == file1) {
        send_string("Error opening file!"); 
    } else {
        send_string("File opened successfully\n");
        c = fgetc(file1);
        if (feof(file1))
            send_string("End of file reached"); 
        else if (ferror(file1))
            send_string("Error in file!");
        send_string(strerror(errno));   //output is "No Error!"
    }
}

输出结果为:

"Error in file!"
"No Error!"

我要打开的文件是一个包含一些随机字符行的简单文本文件。我还尝试打开一个具有相同结果的.csv文件。

1 个答案:

答案 0 :(得分:0)

请尝试使用&#34; rb&#34;打开文件,因为您使用的是Windows!