1

我学习C语言。我需要用 Unicode 数据创建一些文本文件。我写了这样的代码:

#include<stdio.h>
#include<stdlib.h>
#include<wchar.h>

int main(int argc, char *argv[]) {

    wchar_t *s1 = L"Привет, мир!\n";
    wchar_t *s2 = L"Hello, World!";

    FILE *fp = fopen("./hello.txt", "w");

    fputws(s1, fp);
    fputws(s2, fp);

    fclose(fp);

    exit(EXIT_SUCCESS);
}

但我得到这样的结果:

??????, ???!
Hello, World!

为什么我没有得到俄罗斯字符?

4

1 回答 1

2

您运行程序的终端中的语言环境可能存在问题。如果是这样,您只需像这样设置语言环境:

setlocale(LC_CTYPE,"");

更多信息在这里

于 2013-02-21T19:53:59.560 回答