【发布时间】:2012-10-05 16:11:09
【问题描述】:
我想将宽字符输出到文件,而fwprintf 不这样做,即使它被描述为这样做。示例代码:
const char *testFileName = "/Users/jdmuys/wideTestFile.txt";
FILE *wideTestFile;
wideTestFile = fopen(testFileName, "w");
fwide(wideTestFile, 1);
fwprintf(wideTestFile, L"12345");
fclose(wideTestFile);
根据我的十六进制转储实用程序,我的文件“wideTestFile.txt”之后正好包含 5 个字节:31 32 33 34 35。
我怀疑当前语言环境存在一些问题,因为fwprintf 可能会调用 fwprintf_l,后者将语言环境作为附加参数。
我一直在阅读如何使用最后一次调用,但我无法理解我需要作为语言环境传递的内容。文档对此相当模糊(或者我可能无法理解)。
任何解释为什么fwprintf 的行为不像记录的那样?以及fwprintf_l 的任何使用示例?
非常感谢,
京东
这适用于 Mac OS X 10.8.2 下的 Xcode 4.5.1,目标是来自 Objective-C 代码的 iOS 6.0。但这些都不重要。
【问题讨论】:
-
我在Windows上解决了类似的问题,也许你可以从here找到一些有用的东西。
标签: c printf standard-library widestring