fprintf是ANSI的,UNICODE的,要用fwprintf;也可以用_ftprintf来同时兼容ANSI和UNICODE;
只写入了0和1,是因为UNICODE的123456789,实际上内存上是1 \0 2 \0 3 \0 等等等,而fprintf写的是ANSI字符串遇到\0就结束了,所以就只写了一个字节而已。。。
_wsetlocale(0, L
"chs"
);
//必须加上,否则fwprintf对中文不支持
FILE
*f =
fopen
(
"c:\\a.txt"
,
"a+"
);
fwprintf(f, L
"%s\n"
, L
"这个可以写了"
);
fwprintf(f, L
"%s\n"
, L
"1234567890"
);
fclose
(f);
|
其实简单来说,就是把你的代码里,先调用_wsetlocate,再把fprintf换成_ftprintf就行了