吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 785|回复: 3
收起左侧

[求助] fwrite函数问题

[复制链接]
鬼魅王子 发表于 2020-6-9 22:13
首先我定义了一个结构体
[C] 纯文本查看 复制代码
typedef struct book
{
	char sn[8];//书号
	char name[30];//书名
	char author[12];//作者
	float price;//单价
	char press[21];//出版社
	int num;//库存册数
}BOOK;



然后我往里面储存了数据,但是 我吧char类型的长度都弄长了,所以所有空间不能全部利用,这就导致我是用fwrite写出时候会出现乱码,这种情况要如何解决呢?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 鬼魅王子 发表于 2020-6-9 23:49
有人能解决一下我的问题吗?
absman1972 发表于 2020-6-10 08:09
fwrite是連續寫入一段記憶體資料,如果記憶體內本來就有亂碼就無法避免

如果你的 char 陣列(或說字串),有使用 '\0' 來標記結束,那麼回讀時應該會略過亂碼

如果實在很在意檔案中的亂碼,可以考慮把它們全部清成 '\0' 或空白,再填入數據,最後再fwrite寫出
這樣做的話,還要考慮你數據量大不大,如果量非常大,清除的過程會影響你的最終效率

清除做法很多,memset、memcpy、自己寫迴圈清除…等等
可以考慮自行測試一下各種方法的清除效率(比如清除一萬筆測量需要的時間)
最終再決定要使用那種方法來清除

希望有幫助到你
 楼主| 鬼魅王子 发表于 2020-6-10 16:29
absman1972 发表于 2020-6-10 08:09
fwrite是連續寫入一段記憶體資料,如果記憶體內本來就有亂碼就無法避免

如果你的 char 陣列(或說字串), ...

好的谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 15:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表