【问题标题】:My emoji program is showing box with a question mark in C++我的表情符号程序在 C++ 中显示带有问号的框
【发布时间】:2020-10-24 20:21:24
【问题描述】:

Error screenshot.

我正在测试一个用 C++ 打印表情符号的程序。我的编码环境是 Dev C++。但是当执行它时,它会显示一个问号而不是所需的表情符号。

如有任何有用的建议来解决我的问题,我们将不胜感激。

这是我的代码:

#include <iostream>
#include <conio.h>
#include <stdlib.h>

using namespace std;

int main(void)
{
    system("cls");

    int sml = 1, i, limit;
    char ch = sml;

    cout << "How many smiley face you want to print ? ";
    cin >> limit;

    for (i = 0; i < limit; i++)
    {
        cout << ch << ' ';
    }
    return 0;
}

【问题讨论】:

  • 但我见过一些显示这些类型的程序。
  • 你的程序是正确的。问题出在您正在使用的控制台中
  • 你能告诉我在这种情况下该怎么办吗?
  • 我错过了什么吗? ch1,这是 SOH 的 ascii 代码。为什么会打印一个笑脸?
  • @AhanafulAlam ASCII 码 1 是 SOH(标题的开始)。 ASCII 没有笑脸或表情符号

标签: c++ windows dev-c++


【解决方案1】:

你的程序没有任何问题,但是我在 vscode 上看不到输出。您也可以使用 Unicode 并打印:☺

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
int main()
{
system("cls");
int i, limit;
cout<<"How many smiley face you want to print ? "; 
cin>>limit;
for(i=0; i<limit; i++)
{
// Print ☺ in UTF-8
    cout << "\342\230\272" << "\t";
}
return 0;
}

【讨论】:

  • 我已经使用了您的代码,但它保持不变。显示相同的问号或其他字符。
  • @AhanafulAlam 它在 vscode 上对我有用,所以这是你的控制台问题。您的控制台无法显示所需的输出。
  • 只能在使用 utf-8 控制台(例如 Linux 或 Mac)而不是 Windows 的平台上工作
  • @MehdiMostafavi 我在 Visual Studio 中使用过这段代码,但它保持不变
  • @PaulMcKenzie 我的控制台代码页位于 437。但显示相同的内容
【解决方案2】:

您编写的程序是正确的。是控制台有问题。它无法为您传递的 ASCII 值打印相应的字符。我建议您更改控制台(有关如何执行此操作的提示,您必须在 Google 上搜索)。

看看我的控制台输出:

【讨论】:

  • 您能告诉我您使用的是哪个控制台吗?
  • @AhanafulAlam 他正在使用 Windows 的简单命令提示符。
【解决方案3】:

According to a Microsoft thread:

症状:在 Windows 10 桌面版或 Windows 10 移动版上运行某些应用时,某些字符显示为方形或矩形框,或者显示为带有点、问号或“x”的框,而在早期 Windows 或 Windows Phone 版本上运行的同一应用程序没有此问题。 请注意,您在这里遇到了同样的问题。

原因:在 Windows 10 中进行了一些影响字体的关键改进;下文提供了这方面的更多详细信息。这些更改的副作用是,为早期版本的 Windows 或 Windows Phone 创建的现有应用的一小部分可能会受到影响。


此代码:

std::cout << "\1";

也可以打印笑脸。

相反,此代码在godbolt.orgGDB-C++ 中不起作用,因为它们不支持在控制台中显示表情符号。

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 2012-09-02
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    相关资源
    最近更新 更多