fwrite函数问题
首先我定义了一个结构体typedef struct book
{
char sn;//书号
char name;//书名
char author;//作者
float price;//单价
char press;//出版社
int num;//库存册数
}BOOK;
然后我往里面储存了数据,但是 我吧char类型的长度都弄长了,所以所有空间不能全部利用,这就导致我是用fwrite写出时候会出现乱码,这种情况要如何解决呢? 有人能解决一下我的问题吗? fwrite是連續寫入一段記憶體資料,如果記憶體內本來就有亂碼就無法避免
如果你的 char 陣列(或說字串),有使用 '\0' 來標記結束,那麼回讀時應該會略過亂碼
如果實在很在意檔案中的亂碼,可以考慮把它們全部清成 '\0' 或空白,再填入數據,最後再fwrite寫出
這樣做的話,還要考慮你數據量大不大,如果量非常大,清除的過程會影響你的最終效率
清除做法很多,memset、memcpy、自己寫迴圈清除…等等
可以考慮自行測試一下各種方法的清除效率(比如清除一萬筆測量需要的時間)
最終再決定要使用那種方法來清除
希望有幫助到你 absman1972 发表于 2020-6-10 08:09
fwrite是連續寫入一段記憶體資料,如果記憶體內本來就有亂碼就無法避免
如果你的 char 陣列(或說字串), ...
好的谢谢
页:
[1]