以枚举为基础将整数值转换为字符串

时间:2018-07-25 05:49:11

标签: c++ type-conversion poker playing-cards

我已经学习C ++几周了,现在我正尝试自己编写一些小东西,并同时练习所学到的东西。

所以我的程序是扑克手分配器。

我从创建一个简单的“ card”类开始,该类包含两个方法,value和suit。

起初,我试图为两者都做一个枚举,但是我不能用整数设置枚举(例如 <button id="submit1" runat="server" onclick="if(confirm('Sure?')) { } else{ return false} ;" onserverclick="submit_ServerClick" >save</button> 不起作用,这很正常。

我的西装枚举效果很好,只是当我要打印卡片时(我在课堂上实现了protected void submit_ServerClick(object sender, EventArgs e) { } ),我不知道如何将整数转换为相应的西装。例如,我将得到10张黑桃的10 1。当我想使用包含信息10和1

enum value {2,3,4,5,6,7,8,9,T,J,Q,K,A}打印卡时,我想知道如何在operator<<函数中将其转换为类似operator<<()的内容。

;

;

tldr 我想知道如何将例如“ 10 1”转换为“ T s(T spades)” 同时保持2到9(9 1-> 9 s)

谢谢!

1 个答案:

答案 0 :(得分:3)

  

我想知道如何将“ 10 1”转换为“ T s(T黑桃)”,同时保持2到9(9 1-> 9 s)

您可以使用几个数组将数字映射到字符串。

std::string valueMap[13] = {"A", "2", ..., "Q", "K"};
std::string suitMap[4] = {"Clubs", "Diamonds", "Hearts", "Spades"};

假设您使用enum的值是1-13,而enum的值是1-4,则可以使用valueMap[value-1]来获取值,然后使用suitMap[suit-1]来获取西装的字符串。