【问题标题】:ascii heart in c++ windows 10 not displayingc++ windows 10中的ascii heart不显示
【发布时间】:2015-11-05 00:57:44
【问题描述】:

我正在使用 Windows 10 上的 Visual Studio Express 2013 使用 c++ 编写扑克游戏。当我使用以下代码将花色分配给我的牌时,控制台会显示所有问号来代替花色。

void printHand(Card hand[])
{

    const string SUIT = "\3\4\5\6";
    const string RANK = "23456789TJQKA";

    cout << "Your hand is: ";

    for (int i = 0; i < SIZE; i++)
    {
        cout << RANK[hand[i].ranks] << SUIT[hand[i].suits] << " ";
    }
    cout << endl;
}

当我将西装更改为其他字符时,我得到了正确的字符,例如问号、冒号……当我运行 for 循环以显示所有 Ascii 字符时,前 32 个字符显示为控制字符,就像它无法识别一样字体。

我的问题是这是因为 Visual Studio 2013 Express、Windows 10 还是我的机器。

【问题讨论】:

  • 是什么让您认为\3 编码西装?您期望这会奏效的原因是什么?
  • 字符代码 3 是心脏的“OEM”代码。
  • 在命令窗口中尝试不同的字体。您可以通过输入echo 进行测试,然后按住控制键和D 键(这将显示为echo ^D)然后按回车键。您应该看到菱形符号。如果不是,请更改命令窗口上的属性并选择不同的字体。
  • echo 不在 C++ 中,但我对它进行了计算,它显示 ^D,而不是菱形。我的控制台只有三个字体选项,这就是它在所有三个中的显示方式。

标签: c++ visual-studio-2013 ascii windows-10


【解决方案1】:

选中“使用旧控制台”或类似内容的属性中的复选框(我的是瑞典语)。这为我解决了问题。

【讨论】:

    【解决方案2】:

    您必须检查一些事项:

    • 确保您的控制台使用的是代码页 437
    • 否则,请确保您的程序的语言环境是默认的“C”语言环境。

    如果它仍然不起作用,请告诉我们。

    【讨论】:

    • 是的,我使用的是代码页 437,我的程序位于 C:\ 上的 Visual Studio 文件夹中。
    • 我无法复制您的错误。您还对默认值进行了哪些更改?您是从 IDE 运行它吗?
    • 我没有改变任何东西。这是一个班级,我的老师也无法回答这个问题。现在更麻烦了,因为我只是在西装上使用其他符号。 Visual Studio 的使用即插即用。
    • @ARockwell program locale is "C" 与 C: 驱动器上的程序文件完全不同。
    • #include &lt;windows.h&gt; 并添加 std::cout &lt;&lt; GetConsoleOutputCP() &lt;&lt; "\n"; 以验证 VS 不会更改您的 CP。
    猜你喜欢
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    相关资源
    最近更新 更多