是否可以将原始数据转换为标准输出?

时间:2014-02-13 05:12:38

标签: c file struct io stdout

假设我有一个名为“Book”的结构,在构建了几个“Books”后,我想将它们的原始数据打印到标准输出。我想不出用printf做任何事情的方法所以我想我可以用fwrite来读“书”并将其写入标准输出吗?

我尝试了类似下面的内容,但没有奏效:

1 个答案:

答案 0 :(得分:0)

可以将它写入stdout,但它不会以人类可读的方式格式化 - 它只是碰巧在结构字段中的二进制值(和填充字节) 。如果您想要人类可读的内容,请在结构的字段中使用printf

即使你想要二进制数据,fwrite结构也不是一个好主意。首先,没有可读的方法可以读取它们,因为结构布局可能依赖于平台,并且您也可能泄漏敏感信息,因为填充字节和未编写的数组部分等可能包含来自的剩余信息。你的程序的其他部分。您可以自己明确地编写字段,也可以使用许多可用的序列化库中的一个。