如果我有一个EBCDIC格式的字符数组,并且我想将这个数组保存到一个文件中。我正在考虑使用fputs输出字符数组,而不首先将其转换为其他格式。
问题)使用fputs编写EBCDIC合法吗?如果没有,应该在输出之前将字符串转换为ASCII吗?
我在网上搜索过,但找不到任何东西说fputs不应该用于输出EBCDIC数据。
发布于 2013-09-16 22:11:20
如果使用EBCDIC格式的字符数组是以\0字节结尾的c样式字符串,那么就没有问题了。
在二进制模式下,fputs()与格式无关,但它不编写\0。
假设您的程序是使用ASCII字符集编写的,重要的是以二进制模式打开输出文件(例如"wb"),否则C的\n在EBCDIC中将不匹配,一些转换是可能的。
另一方面,除了写和读之外,你还打算对这个文件做些什么吗?
如果您的“字符数组以EBCDIC格式”而不是以\0结尾或嵌入了\0字节,建议您简单地使用fwrite()。同样,请确保在二进制模式下使用,除非整个系统是EBCDIC。
发布于 2013-09-16 22:15:02
fputs使用一个C字符串,它使用ASCII编码。那是行不通的。我认为您需要使用更低级别的函数来编写文件。也许可以使用fwrite直接编写文件,而不使用字符串。这是fwrite上的手册页。
https://stackoverflow.com/questions/18838006
复制相似问题