FILE *hFile;
fopen_s(&hFile, "D:\\temp\\test.txt", "rb+");
char Buf[100];
int dwRead1 = fread(&Buf[0], sizeof(char), 10, hFile);
fwrite("Hello,", sizeof(char), 6, hFile);
int dwRead2 = fread(&Buf[0], sizeof(char), 10, hFile);
正如我猜,dwRead1是0.但为什么dwRead2 = 10,而不是0?在Buf中,我看到了一个垃圾,尽管我只写了6个字节,而在他们之后没有其他东西。fread从空文件意外输出
你检查过'feof()'和'ferror()'吗? – Mauren
@Mauren在第一次调用fread()后返回一些正数。在写入6个字节之后,在读取10个字节的垃圾之后,feof返回0.也是0 – Qwerty
奇怪。你是否在Notepad ++等编辑器中打开过这个文件来验证是否存在空格或控制字符? – Mauren