Я изучаю C ++ в рамках курса, и, следуя и копируя части кода, я заметил, что когда я запрашиваю ввод данных пользователем и сохраняю их в массиве (не используя его для печати), код не продолжается к следующему шагу.
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
const int MAX_CHIPS = 100;
const float MAX_TURN = 0.37;
int main()
{
bool player1Turn = true;
bool gameOver = false;
int chipsInPile = 0;
int chipsTaken = 0;
string playerName[2];
cout << "Player 1, Enter your name: \n";
cin >> playerName[1];
cout << "Player 2, Enter your name: \n";
cin >> playerName[2];
//seed the random number generator
srand(time(0));
//start the game with a random number of chips in the pile
chipsInPile = (rand() % MAX_CHIPS) + 1;
cout << "This round will start with " << chipsInPile << " chips in the pile\n";
cout << "You can only take " << static_cast<int>(chipsInPile * MAX_TURN) << endl;
return 0;
}
Я просто получаю в качестве вывода:
/ home / ubuntu / CLionProjects / Temp / cmake-build-debug / Temp
Player 1, введите ваше имя: стек
Player 2, введите ваше имя: переполнение
Процесс завершен с кодом выхода 139 (прерван сигналом 11: SIGSEGV)
Однако, если я уберу эту часть, запрашивая ввод пользователя. Затем я получаю последнюю часть:
/ home / ubuntu / CLionProjects / Temp / cmake-build-debug / Temp
Этот раунд начнется с 57 фишек в куче
Вы можете взять только 21
Процесс завершен с кодом выхода 0
Любая подсказка, почему он не продвигается до конца, объединяя оба вышеуказанных выхода?