今天突然遇到一個問題,用fwrite/fread讀寫文件,發現當fread讀取文件時只能讀一半, 即使用foef()查看是否讀到文件結尾,也是顯示文件已經讀取到文件末尾,查看文件的返回值發現文件只讀取了一半。
在這里記錄一下:
fread函數並未讀全我們文件里的內容,這是因為系統默認文件結束符為ctrl+z,而0x1A的ASCII值恰巧與ctrl+z的ASCII值相等,所以遇到 0x1A fread就不再讀文件。
解決方法是修改文件打開方式未二進制:
把fp = fopen(“*.txt”,”r”);改成fp = fopen("*.txt", "rb+");