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 に答える