首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 文件二進制讀寫:記事本無法顯示、寫字板可讀原因

     編輯:程式設計疑難解答

現象

結構體數組 fwrite 寫入文件,記事本打開亂碼,寫字板正常顯示。

原因

  • 二進制數據非文本:fwrite(&s[i], sizeof(struct st), 1, fp) 寫入原始內存字節,包含填充字節、整數二進制表示,非可打印字符。
  • 記事本純文本模式:嘗試按編碼(ANSI/UTF-8)解碼,遇到非法字節顯示亂碼或空白。
  • 寫字板支持 RTF/二進制容錯:能忽略非文本字節,提取可打印部分(如字符串字段)顯示。

驗證

用十六進制編輯器打開文件,可見字符串字段(如 41 42 43 = "ABC")夾雜 00 填充字節。

建議

若需人類可讀,改用 fprintf(fp, "%s %s %s\n", name, age, tel) 文本格式寫入;二進制僅供程序讀取。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved