0

gbkでエンコードされた file.txt があり、いくつかのバイトを読み取ってバッファーにifstream::read保存し、charバッファー内のすべての単語をgbk.

ここwchar_tでは が必要だと思うので、次のようにします。

int main()
{
    ifstream ifs("./file.txt");
    char buf[256];
    ifs.read(buf, 255);

    wchar_t wbuf[256];
    mbstowcs( wbuf, buf, 255);
    for (int i = 0; i < wcslen(wbuf); i++)
        wprintf(L"%c ", wbuf[i]);

}

私はそれを正しくやっていますか?または、仕事をするためのより良いアイデアはありますか?

ありがとう。

4

1 に答える 1

2

wide-char 特殊化を使用してみましたか? (ifstreamとはoverとそれぞれwifstreamのテンプレートの特殊化です。)basic_ifstreamcharwchar_t

wifstream wifs("./file.txt");
wifs.imbue(locale("zh_CN.GBK"));
wchar_t wbuf[256];
wifs.read(buf, 255);
于 2012-07-29T05:06:50.673 に答える