我不明白cin.ignore()是如何工作的。当我运行这段代码时,我的程序崩溃了



有一个类数组。我想输入玩家的数量,然后使用for-循环输入玩家的名字。问题是我不明白如何使用cin.ignore()来避免程序崩溃。

void main() {
int numberOfPlayers;
cout << "Input amount of players:";
getline(cin, numberOfPlayers);
Player** arrOfPlayers = new Player*[numberOfPlayers];
string newName;
for (int i = 0; i < numberOfPlayers; i++) {
cout << "nInput player " << i + 1 << " nickname: ";
getline(cin, newName);
arrOfPlayers[i]->setName(newName);
}
}

您尚未分配单个玩家

这个

Player** arrOfPlayers = new Player*[numberOfPlayers];

仅将指针数组分配给玩家

你还需要创建那些玩家

for (int i = 0; i < numberOfPlayers; ++i)
arrOfPlayers[i] = new Player;

最新更新