Я писал код на C++, чтобы практиковать выполнение функций, и я столкнулся с проблемой наличия массива строк, где я хотел бы определить определенные элементы в одной функции, а затем вывести эти элементы в другую функцию. Пока что я сделал код для входной части. Когда я запускаю программу, она перестает отвечать на запросы, когда она запрашивает имя игрока во второй раз. У меня есть массив, p[1]
, определенный как std::string
, потому что в противном случае я получаю сообщение об ошибке при попытке запустить getline(cin, p[x])
. Любые сведения о том, почему программа перестает работать и как создать массив, который я хочу?Глобальный массив строк в C++
Мой код:
#include <stdio.h>
#include "simpio.h"
#include "strlib.h"
#include "iostream.h"
int Hp[1], Atk[1], Ddg[1];
std::string p[1];
void player(int x){
cout<<"Player name: ";
getline(cin, p[x]);
cout<<"\tHp: ";
cin>>Hp[x];
cout<<"\tAtk: ";
cin>>Atk[x];
cout<<"\tDdg: ";
cin>>Ddg[x];
}
main(){
string go;
player(0);
player(1);
cout<<"Go? (Yes/No): ";
cin>>go;
cin.get();
}
для того, чтобы массив иметь индекс 1, он должен иметь размер по крайней мере, 2. – Brian