Эта строка:
cout << "This time we got " << rankCard() << suitCard() << endl;
Таким образом, эти функции печатают карточку, а затем возвращают 0, поэтому, если вы вызовете их в cout
, они сделают свое дело, напечатав карточку, а затем выведите возвращаемое значение, равное 0.
Что вы можете сделать, это вызвать их за пределами cout
, просто сделайте:
//...
cout << "This time we got ";
rankCard();
suitCard();
cout << endl;
cout << "Wanna pull a card again?" << endl;
//...
Лично я бы реорганизовал функции для возврата соответствующих символ карты:
Живой образец
const char rankCard() {
int rank = (rand() % 13) + 1;
switch (rank) {
case 1: return 'A';
case 10: return 'T';
case 11: return 'J';
case 12: return 'Q';
case 13: return 'K';
default: return rank + 48; // convert to decimal digit
}
}
const char suitCard() {
int suit = (rand() % 4) + 1;
switch (suit) {
case 1: return 'H';
case 2: return 'D';
case 3: return 'C';
case 4: return 'S';
default: return 0; //ASCII code for null character
}
}