如果我有一个EBCDIC格式的字符数组,我想将该数组保存到文件中。我正在考虑使用fputs
输出字符数组而不先将其转换为另一种格式。
问题)使用fputs
是否合法写EBCDIC?如果没有,我应该在输出之前将字符串转换为ASCII吗?
我在线搜索,但找不到任何说法fputs
不应该用于输出EBCDIC数据。
答案 0 :(得分:2)
如果你的EBCDIC格式的字符数组是一个c样式字符串,那么结尾有一个\0
字节,那就没问题了。
fputs()
与格式无关,除了不写\0
之外。
假设您的程序是使用ASCII字符集编写的,那么输出文件以二进制模式打开(例如“wb”)非常重要,否则C的\n
与EBCDIC中的\0
不匹配一些翻译是可能的。
另一方面,除了写作之外,你打算用这个文件做些什么,也许可以回读一下吗?
如果您的“EBCDIC格式的字符数组”未以\0
结尾或嵌入fwrite()
个字节,建议您使用{{1}}。再次确保在二进制模式下使用,除非您的整个系统都是EBCDIC。
答案 1 :(得分:0)
好吧,fputs
采用C字符串,并使用ASCII编码。所以,那是行不通的。我认为你需要使用较低级别的函数来编写文件。也许使用fwrite
直接编写文件而不使用字符串。这是man page on fwrite。