[問題] 以byte讀檔時讀到EOF byte
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC+Linux
問題(Question):
文字檔內有個全形的冒號:, 存成unicode big endian (0xFF1A)
使用getc並判斷!=EOF才印出來, 發現FF會被當作EOF
餵入的資料(Input):
檔案bytes長這樣 FE FF FF 1A
^^^^^ unicode
預期的正確結果(Expected Output):
印出FF 1A
錯誤結果(Wrong Output):
印出1A
程式碼(Code):(請善用置底文網頁, 記得排版)
fseek(fptr, 2, SEEK_SET);
char ch;
while( (ch=getc(fptr))!=EOF ){
printf("%x ",ch);
}
補充說明(Supplement):
在我的實驗中看來只要檔案有出現FF的byte, 就會被當作EOF
請問如何才能印出預期的結果,
或是說如何準確地判斷是'真的'碰到檔案結尾? 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.186.181
→
06/20 11:37, , 1F
06/20 11:37, 1F
推
06/20 11:44, , 2F
06/20 11:44, 2F
→
06/20 11:51, , 3F
06/20 11:51, 3F
→
06/20 11:53, , 4F
06/20 11:53, 4F
推
06/20 12:28, , 5F
06/20 12:28, 5F
推
06/20 12:28, , 6F
06/20 12:28, 6F
推
06/20 12:57, , 7F
06/20 12:57, 7F
推
06/20 13:17, , 8F
06/20 13:17, 8F
推
06/20 13:20, , 9F
06/20 13:20, 9F
推
06/20 13:43, , 10F
06/20 13:43, 10F
推
06/20 19:51, , 11F
06/20 19:51, 11F
→
06/20 19:51, , 12F
06/20 19:51, 12F
推
06/20 19:56, , 13F
06/20 19:56, 13F
→
06/21 11:38, , 14F
06/21 11:38, 14F