【发布时间】:2014-01-18 17:18:28
【问题描述】:
我需要在文件中跟踪大于 255 的 int 数。它大于最大的无符号字符,因此使用 fputc 似乎不可靠(第一个问题:它总是正确的吗?)。
我可以使用fputs,通过将数字转换为字符,从而获得一个字符串;但在程序中,我也需要将数字作为整数!
所以,标题中的问题:写这个数字最有效的方法是什么?有没有办法避免转换为字符串?
保持文件应该被另一个进程读取,其中 char 编号应该再次变为 int。
【问题讨论】:
-
使用 fwrite 将其写入二进制数据即可。
-
有什么理由不写二进制 16 位 int 吗?
-
你可以使用联合,虽然这有点过头了。
-
实际上写入和读取文件将比 fprintf/fscanf 代码与字符串之间的转换慢两个数量级。您很可能会过早地进行优化。