首页 > 解决方案 > wcout 无法在 Windows 中从 wcin 打印 wstring

问题描述

wcout无法在 Windows 中打印wstringwcin但在 Linux(WSL2 Ubuntu 20.04)中,它运行良好。

#include <iostream>
#include <fstream>
#include <string>
#include <locale>
using namespace std;

int main(int argv, char** argc) 
{
    locale mylocale("");
    locale::global(mylocale);

    wcout.imbue(mylocale);
    wcin.imbue(mylocale);
    
    wstring name;

    wcout << L"너의 이름은?";
    getline(wcin, name);

    wcout << name << endl;

    return 0;
}

以下是我的预期输出。

너의 이름은?김철수
김철수

但是,000是打印出来的。

너의 이름은?김철수
000

或者只是空白

너의 이름은?김철수

有时'P','@'......

控制台Active code page: 65001检查。

wcin正确放入 wstring namename.size()显示我输入的文字数。

从文件中获取输入是可以的。

我使用D2coding字体。

标签: c++

解决方案


推荐阅读