C语言 是否可以将原始数据 fwrite() 转换为标准输出



假设我有一个名为"Book"的结构,在构造了几个"Books"之后,我想将它们的原始数据打印到标准输出中。我想不出任何使用printf的方法,所以我想知道我可以使用fwrite来阅读"书"并将其写入标准输出吗?

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

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

fwrite结构很少是一个好主意,即使您确实需要二进制数据也是如此。首先,没有可移植的方式来读回它们,因为结构布局可能取决于平台,并且您还可能泄漏敏感信息,因为填充字节和您尚未写入的数组部分等可能包含来自程序其他部分的剩余信息。您可以自己显式编写字段,也可以改用许多可用的序列化库之一。

最新更新