我正在尝试使用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文件。
答案 0 :(得分:0)
请尝试使用&#34; rb&#34;打开文件,因为您使用的是Windows!