如果我有一个 EBCDIC 格式的字符数组,并且我想将该数组保存到一个文件中。我正在考虑使用fputs
输出字符数组而不首先将其转换为另一种格式。
问题)fputs
编写EBCDIC是否合法?如果不是,我应该在输出之前将字符串转换为 ASCII 吗?
我在网上搜索过,但找不到任何fputs
不应该用于输出 EBCDIC 数据的内容。
如果您的 EBCDIC 格式的字符数组是以\0
字节结尾的 c 样式字符串,则没有问题。
fputs()
,在二进制模式下,除了不写入\0
.
假设您的程序是使用 ASCII 字符集编写的,您的输出文件以二进制模式打开(例如“wb”)很重要,否则\n
C 的 EBCDIC 中的字符将不匹配,并且可以进行一些翻译。
另一方面,除了写入和回读之外,您还打算对这个文件做些什么吗?
如果您的“EBCDIC 格式的字符数组”不是以字节结尾\0
或没有嵌入\0
字节,建议您简单使用fwrite()
. 再次确保在二进制模式下使用,除非您的整个系统是 EBCDIC。
好吧,fputs
需要一个 C 字符串,并且使用 ASCII 编码。所以,那是行不通的。我认为您需要使用较低级别的函数编写文件。也许用于fwrite
直接写入文件而不使用字符串。这是fwrite 的手册页。