C ++ cout能正确输出多字节字符串吗?

时间:2016-06-18 09:09:09

标签: c++ unicode cout wchar-t

我有一个如下的程序:

#include <iostream>
using namespace std;
int main()
{
    wcout << "abc" << endl;
    cout << "你好" << endl;
    cout << L"abc" << endl;
    return 0;
}

我的问题:

  1. 第一个&#34; wcout&#34;没有问题,我的问题是:wcout&#34;自动&#34;转换为窄字符串&#34; abc&#34;进入wchar_t字符串L&#34; abc&#34;在记忆中,打印出来?如何证明这种转换是否存在?

  2. 第二个&#34; cout&#34;打印出中文字符串&#34;你好&#34;。只要我在windows中设置中文代码页,它就可以工作。没问题。

  3. 第三个&#34; cout&#34;将打印&#34; ??&#34;我的测试中的随机字符。我很好奇,为什么&#34; cout&#34;可以成功打印其他语言字符,但不能打印wchar_t字符串?这里的核心问题/区别是什么?

  4. 感谢。

0 个答案:

没有答案