【发布时间】:2012-01-30 16:24:45
【问题描述】:
在代码中同时使用 printf 和 wprintf 函数时遇到问题。如果先打印常规字符串,则 wprintf 不起作用。如果我先使用wprintf,那么printf 将不起作用。
#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,"");
printf("No printing!\n");
wprintf(L"Printing!\n");
wprintf(L"Wide char\n");
printf("ASCII\n");
return 0;
}
输出:
No printing!
ASCII
虽然
#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,"");
wprintf(L"Printing!\n");
printf("No printing!\n");
wprintf(L"Wide char\n");
printf("ASCII\n");
return 0;
}
输出:
Printing!
Wide char
我在 64 位 Linux 3.0 上使用 gcc (GCC) 4.6.1 20110819 和 glibc 2.14。
【问题讨论】:
-
Linux 3.0?那是什么?什么分布?
-
@bmargulies:内核版本。发行版是 Archlinux。
标签: c gcc internationalization