1

如果我有一个 EBCDIC 格式的字符数组,并且我想将该数组保存到一个文件中。我正在考虑使用fputs输出字符数组而不首先将其转换为另一种格式。

问题)fputs编写EBCDIC是否合法?如果不是,我应该在输出之前将字符串转换为 ASCII 吗?

我在网上搜索过,但找不到任何fputs不应该用于输出 EBCDIC 数据的内容。

4

2 回答 2

2

如果您的 EBCDIC 格式的字符数组是以\0字节结尾的 c 样式字符串,则没有问题。

fputs(),在二进制模式下,除了不写入\0.

假设您的程序是使用 ASCII 字符集编写的,您的输出文件以二进制模式打开(例如“wb”)很重要,否则\nC 的 EBCDIC 中的字符将不匹配,并且可以进行一些翻译。

另一方面,除了写入和回读之外,您还打算对这个文件做些什么吗?


如果您的“EBCDIC 格式的字符数组”不是以字节结尾\0或没有嵌入\0字节,建议您简单使用fwrite(). 再次确保在二进制模式下使用,除非您的整个系统是 EBCDIC。

于 2013-09-16T22:11:20.657 回答
0

好吧,fputs需要一个 C 字符串,并且使用 ASCII 编码。所以,那是行不通的。我认为您需要使用较低级别的函数编写文件。也许用于fwrite直接写入文件而不使用字符串。这是fwrite 的手册页

于 2013-09-16T22:15:02.493 回答