Unicode C++;红桃、黑桃、梅花、钻石角色不出现

Unicode C++;红桃、黑桃、梅花、钻石角色不出现,unicode,ascii,Unicode,Ascii,我需要为学校作业创建一个纸牌游戏,我试图在输出中显示心形、钻石、黑桃和梅花符号 老师告诉我们使用char(3)、char(4)等,但输出显示一个问号。我正在Windows 10上使用Visual Studio 2017 我不太熟悉Unicode或ASCII的东西,如果有人能帮我,我还有3天时间提交作业!!我是初学者 多谢各位 //康科迪亚大学COMP 218 EC部分(2017年冬季) cout << char(3) << char(4) << char(5)

我需要为学校作业创建一个纸牌游戏,我试图在输出中显示心形、钻石、黑桃和梅花符号

老师告诉我们使用char(3)、char(4)等,但输出显示一个问号。我正在Windows 10上使用Visual Studio 2017

我不太熟悉Unicode或ASCII的东西,如果有人能帮我,我还有3天时间提交作业!!我是初学者

多谢各位

//康科迪亚大学COMP 218 EC部分(2017年冬季)

cout << char(3) << char(4) << char(5) << char(6) << char(3) << char(4) << char(5) << char(6) << char(3) << char(4) << char(5) << char(6) << endl
    << "\t \t Welcome to Shawn's Card Dealing Program" << endl
    << char(3) << char(4) << char(5) << char(6) << char(3) << char(4) << char(5) << char(6) << char(3) << char(4) << char(5) << char(6);

cout << "RULES: \nTwo cards are dealt at a time. They are then compared. \nSince there are two decks of cards, you may have identital cards. \nI will tell you if they are the same or not" << endl
    << "or if they just have the same suit or rank. \nOnce I finish comparing the two cards, they are returned to the deck, the deck is reshuffled and two more cards are dealt. \n \n" << endl
    << "So how many pairs shall I deal? (1 to 15 max): \n > ";

while (!valid)
{
    valid = true;

    cin >> loops;

    if (cin.fail() || loops < 1 || loops > 15)
    {
        cin.clear();
        cin.ignore();
        cout << "Please enter an integer between 1 and 15:" << endl << "> ";
        valid = false;
    }

}

int pairCount = loops;

do
{
    card1.genRandom();
    card2.genRandom();


    cout << "Pair " << setw(2) << pairCount - loops + 1 << " - ";

    card1.printCard();
    card2.printCard();
    cout << endl;

    if (card1.sameCard(card2) == true)
    {
        cout << "same card" << endl;
        ident += 1;
    }
    else
    {
        if (card1.sameSuit(card2) == true)
        {
            cout << "same suit" << endl;
            sameSuit +=1;
        }
        if (card1.sameRank(card2) == true)
        {
            cout << "same rank" << endl;
            sameRank += 1;
        }
        if (card1.sameRank(card2) == false && card1.sameSuit(card2) == false)
        {
            cout << "both different" << endl;
            different +=1;
        }
    }

    loops -= 1;
} while (loops > 0);

cout << "Identical: " << ident << endl;
cout << "Same Suit: " << sameSuit << endl;
cout << "Same Rank: " << sameRank << endl;
cout << "Both different: " << different << endl;

cout您可能没有使用ASCII,并且实际上已被指示使用不同的编码,这可以从对扑克牌套装字符的要求中得到证明,这些字符不在ASCII字符集中。(几乎任何提及ASCII而不提及规范的行为都是非常可疑的。)

您可以在命令提示符中使用CP437(go
chcp
),CP437是其中一种编码,其中3,4,5,6是扑克牌套装。您的系统可能很方便地设置了一个对法语更有用的命令提示符编码。如果是这样,每次打开此程序的命令提示符时,您都可以运行
chcp 437


要使其工作,还必须为支持字符的字体设置命令提示符。我认为绝大多数字体都支持扑克牌套装字符,所以这可能不是问题

您可能没有使用ASCII,并且实际上已被指示使用不同的编码,这可以从对不在ASCII字符集中的扑克牌套装字符的要求中得到证明。(几乎任何提及ASCII而不提及规范的行为都是非常可疑的。)

您可以在命令提示符中使用CP437(go
chcp
),CP437是其中一种编码,其中3,4,5,6是扑克牌套装。您的系统可能很方便地设置了一个对法语更有用的命令提示符编码。如果是这样,每次打开此程序的命令提示符时,您都可以运行
chcp 437


要使其工作,还必须为支持字符的字体设置命令提示符。我认为绝大多数字体都支持扑克牌套装字符,所以这可能不是问题

你在锻炼你解决问题的能力,不管它看起来像什么。一旦有人开始付给你很多钱,它就很有用了。“俱乐部”的意思与“俱乐部”完全相同♣", 因此,没有理由在这个问题上纠结。弄清楚如何配置控制台,使其使用正确的字体和代码页,这可以等几天,这里已经包含了许多现有的问题。你正在锻炼你解决问题的能力,不管它看起来像什么。一旦有人开始给你钱,它就会非常有用“俱乐部”的意思和“俱乐部”完全一样♣“,因此没有理由在这个问题上纠结。弄清楚如何配置控制台,使其使用正确的字体和代码页,这可以等几天,这里已经有很多问题。谢谢你,汤姆。是的,我的计算机是法语的,命令提示符也是。当我在CMD中输入“chcp”时,它返回(法语):活动代码页:437。我仍然不知道这是什么,但在这一点上,我将只写下“红心、俱乐部,…”。谢谢你的帮助!!很高兴提供帮助。@Hans的表扬和其他观点都是正确的。我建议你检查一下,看看是否期望你花时间处理可能是外部的问题作业范围。谢谢汤姆。是的,我的计算机是法语的,命令提示符也是法语的。当我在CMD中输入“chcp”时,它返回(法语):活动代码页:437。我仍然不知道这是什么,但在这一点上,我将只写下“红心、俱乐部,…”。谢谢你的帮助!!很高兴提供帮助。@Hans的表扬和其他观点都是正确的。我建议你检查一下,看看是否期望你花时间处理可能是外部的问题任务的范围。