【发布时间】:2014-02-19 21:18:08
【问题描述】:
我正在使用 C++ 开发 BlackJack 游戏,其中包含以下代码段,但出现错误
typedef struct
{
int value;
char suit[8];
char name[8];
}Deck;
Deck Cards[52] = {{ 1,"Ace","Hearts"},{ 2, "Two","Hearts"}, { 3, "Three", "Hearts"}, { 4, "Four","Hearts"}, { 5,"Five","Hearts"},{ 6,"Six", "Hearts06"},
{ 7,"Seven","Hearts"},{ 8,"Eight","Hearts"},{ 9,"Nine","Hearts"},{ 10,"Ten","Hearts"},{10,"Jack","Hearts"},{10,"Queen","Hearts"},{10,"King","Hearts"},
{ 1,"Ace","Clubs"},{2, "Two", "Clubs"},{3,"Three","Clubs"},{4,"Four","Clubs"},{5,"Five","Clubs"},{6,"Six","Clubs"},{7,"Seven","Clubs"},{8,"Eight","Clubs"},
{ 9,"Nine","Clubs"},{10,"Ten","Clubs"},{10,"Jack","Clubs"},{10,"Queen","Clubs"},{10,"King","Clubs"},
{ 1,"Ace","Diamonds"},{2,"Two","Diamonds"},{3,"Three","Diamonds"},{4,"Four","Diamonds"},{5,"Five","Diamonds"},{6,"Six","Diamonds"},{7,"Seven","Diamonds"},
{ 8,"Eight","Diamonds"},{9,"Nine","Diamonds"},{10,"Ten","Diamonds"},{10,"Jack","Diamonds"},{10,"Queen","Diamonds"},{10,"King","Diamonds"},
{ 1,"Ace","Spades"},{ 2,"Two","Spades"},{3,"Three","Spades"},{4,"Four","Spades"},{5,"Five","Spades"},{6,"Six","Spades"},{7,"Seven","Spades"},
{ 8,"Eight","Spades"},{ 9,"Nine","Spades"},{10,"Ten","Spades"},{10,"Jack","Spades"},{10,"Queen","Spades"},{10,"King","Spades"}};
错误是
Main.c:39:127: error: initializer-string for array of chars is too long [-fpermissive]
第 39 行是上面贴出的代码的最后一行
请帮助我找出编译器抛出错误的原因
【问题讨论】:
-
数组的大小不应该是52吗?另外我认为“Hearts06”不是你想要的。
-
您可以使用
std::strings 和std::vectors。那么你就不会在数组大小上犯错了。 -
@drescherjm 在代码中是 52,我正在尝试通过更改它,我已经编辑了问题
-
玩得开心,编写一个 A 可以被视为 1 或 11 的逻辑
-
@CashCow 如果你帮不上忙,请不要帮忙。我寻求帮助以找出导致错误的原因,而不是为在 C++ 中实现 BlackJack 的最佳实践进行代码审查