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



我已经学习C++几周了,现在我正在尝试自己编写一个小程序,同时练习我所学的内容。

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

我首先创建了一个简单的"card"类,其中包含两个方法,value和suit。

起初,我试图为两者都做一个枚举,但我无法用整数设置枚举(例如enum value {2,3,4,5,6,7,8,9,T,J,Q,K,A}不起作用,这是正常的。

我的suits枚举工作得很好,只是当我想打印一张卡(我在类中实现了operator<<(时,我不知道如何将整数转换为相应的suits。举个例子,我十个黑桃得10个1。当我想使用包含信息10和1 的cout << card打印卡时,我想知道如何在我的operator<<()函数中转换它以获得类似T s的东西

tldr我想知道如何将例如"10 1"转换为"T s(T spades("同时保持2到9的

谢谢!!

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

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

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

假设使用值为1-13的enum作为值,使用值为1-4的enum作为套装,则可以使用valueMap[value-1]获取值的字符串,使用suitMap[suit-1]获取套装的字符串。

相关内容

  • 没有找到相关文章

最新更新