如何将"a, w, s, or d"所做的每个移动保存到数组中?



我想把每个移动'char'保存到一个数组中,然后回调所有数组以查看历史

cout << "===    Chose    ===" << endl;
cout << "Choose were to GO" << endl;
cout << "a, w, s, or d" << endl;
cout << endl;
cin >> Сhoice_1;
if (tolower(Сhoice_1) == 'a')
{
cout << "You made a step to the left" << endl;
value1 = -1;
if (value1 < 0) break;
}
if (tolower(Сhoice_1) == 's')
{
cout << "You made a step back" << endl;
value1 = -1;
if (value1 < 0) break;
}
if (tolower(Сhoice_1) == 'w')
{
cout << "You made a step foward" << endl;
value1 = -1;
if (value1 < 0) break;
}
if (tolower(Сhoice_1) == 'd')
{
cout << "You made a step to the right" << endl;
value1 = -1;
if (value1 < 0) break;
}
if (LifeOptionMain <= 0)
{
value1 = -1;
if (value1 < 0) break;
}

I try for loop

for (int i = 0; i < 10; i++)
{
move[i + 1];
move[i] = Сhoice_1;
}

但是所有元素只有一个符号,最后一个输入符号,如果最后一个是,那么输出将是一个一个一个....我做错了什么?请帮助。

你可能会遇到数组长度的问题,但这是可行的。

char moveArray[1024];
int moveArrayIndex = 0;
...
cin >> Сhoice_1;
moveArray[moveArrayIndex++] = Choice_1;
moveArray[moveArrayIndex] = 0;  // This makes it a printable string.
...

这样做的问题是,如果有比你腾出的空间更多的移动,你就会流出数组的末尾。一个不同的数据结构会更安全。

std::vector<char> moveArray;
cin >> Choice_1;
moveArray.push_back(Choice_1);

然而,这可能是使用你还没有准备好的技术。

我找到了一个解决方案,非常感谢,如果有人需要类似问题的解决方案,我将留下代码。我提前道歉,因为这只是一个学习任务。

# 1函数

do
{
cout << "=== Make a move ===" << endl;
cout << "===    Chose    ===" << endl;
cout << "Choose were to GO" << endl;
cout << "a, w, s, or d" << endl;
cout << endl;
cin >> Сhoice_1;
if (tolower(Сhoice_1) == 'a')
{
cout << "You made a step to the left" << endl;
value1 = -1;
move.push_back(Сhoice_1);
if (value1 < 0) break;
}
if (tolower(Сhoice_1) == 's')
{
cout << "You made a step back" << endl;
value1 = -1;
move.push_back(Сhoice_1);
if (value1 < 0) break;
}
if (tolower(Сhoice_1) == 'w')
{
cout << "You made a step foward" << endl;
value1 = -1;
move.push_back(Сhoice_1);
if (value1 < 0) break;
}
if (tolower(Сhoice_1) == 'd')
{
cout << "You made a step to the right" << endl;
value1 = -1;
move.push_back(Сhoice_1);
if (value1 < 0) break;
}
if (LifeOptionMain <= 0)
{
value1 = -1;
if (value1 < 0) break;
}
return Сhoice_1;
# 2

函数

void Move_History()
{
for (char i : move)
{
cout << "You made a move - : " << i << ":";
cout << endl;
}
}