将整数值转换为以枚举为基础的字符串
Convert an integer value to a string with an enum as basis
我已经学习 C++ 几周了,现在我正在尝试自己编写一些小东西,同时练习我学到的东西。
所以我的程序是扑克牌分发器。
我首先创建了一个简单的 "card" class,其中包含两个方法,值和花色。
起初我尝试为两者都做一个枚举,但我无法将枚举设置为整数(例如enum value {2,3,4,5,6,7,8,9,T,J,Q,K,A}
不起作用,这是正常的。
我的套装枚举工作得很好,只是当我想打印一张卡片时(我在我的 class 中实现了 operator<<
)我不知道如何将我的整数转换为相应的花色。例如,十张黑桃我会得到 10 1。当我想使用包含信息 10 和 1
的 cout << card
打印卡片时,我想知道如何在我的 operator<<()
函数中将其转换为类似 T s
的内容]
;
;
tldr 我想知道如何将例如“10 1”转换为 "T s (T spades)"
同时保持 2 到 9 (9 1->9 s)
谢谢!!
I want to know how to convert for example "10 1" to "T s (T spades)" while keeping 2 to 9 as such (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]
获取花色的字符串。
我已经学习 C++ 几周了,现在我正在尝试自己编写一些小东西,同时练习我学到的东西。
所以我的程序是扑克牌分发器。
我首先创建了一个简单的 "card" class,其中包含两个方法,值和花色。
起初我尝试为两者都做一个枚举,但我无法将枚举设置为整数(例如enum value {2,3,4,5,6,7,8,9,T,J,Q,K,A}
不起作用,这是正常的。
我的套装枚举工作得很好,只是当我想打印一张卡片时(我在我的 class 中实现了 operator<<
)我不知道如何将我的整数转换为相应的花色。例如,十张黑桃我会得到 10 1。当我想使用包含信息 10 和 1
cout << card
打印卡片时,我想知道如何在我的 operator<<()
函数中将其转换为类似 T s
的内容]
;
;
tldr 我想知道如何将例如“10 1”转换为 "T s (T spades)" 同时保持 2 到 9 (9 1->9 s)
谢谢!!
I want to know how to convert for example "10 1" to "T s (T spades)" while keeping 2 to 9 as such (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]
获取花色的字符串。