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