【问题标题】:Wide character output result [closed]宽字符输出结果[关闭]
【发布时间】:2012-11-26 17:52:23
【问题描述】:

为什么我在使用 wchar_t 时会得到数字作为输出结果?

#include <iostream>
using namespace std;
int main()
{
    wchar_t q;
    q = 'A';
    cout << q;
    q = 'B';
    cout << q;
    q = 'C';
    cout << q;
    return 0;
}

【问题讨论】:

  • 使用 std::wcout 和宽文本。
  • 带 wcout
  • 我不是 100% 确定规则是什么,但 wchar_t 可以被视为整数或其他东西,所以这就是你得到数字的原因 - 因为 wchar_t 没有 operator&lt;&lt;使用std::ostream,因此它转换为整数并改用该重载。
  • 在使用宽字符时,请务必使用L'A'L"abc"

标签: c++ wchar


【解决方案1】:

std::coutbasic_iostream&lt;char&gt;。对于wchar_t,对于basic_iostream&lt;char&gt;,没有operator&lt;&lt; 过载。当您输出wchar_t 对象时,必须将它们转换为存在operator&lt;&lt; 重载的某种类型。所选转换为除char 以外的整数类型,因此显示整数值而不是表示的字符。

【讨论】:

    【解决方案2】:

    显示的“数字”是字符的。这就是你得到“数字”的原因。如果要显示字符可以使用wcout

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 2012-10-05
      • 2022-01-04
      • 2016-10-28
      • 1970-01-01
      • 2015-07-20
      相关资源
      最近更新 更多