输入错误的C++数组

Flo*_*olk -1 c++

所以我把这个程序编写成代码来读取多个整数,然后它应该反向读取数组.然而,它只是读回所有0

while (true)
{
    cin >> input;
    if (input == -1 && gotStuff == false) {return 0;}
    else if (input == -1 && gotStuff == true) {break;}
    else
    {
        inputData[pos1] = input;
        pos1 ++;
        gotStuff = true;
    }
}

for (int i = pos1; i >= 0; i--)
{
    outputData[pos2] = inputData[pos1];
    pos2 ++;

    cout << outputData[pos1] << " ";
}
Run Code Online (Sandbox Code Playgroud)

为什么这个读数全部为0?

mat*_*975 5

你这里有一个明显的问题

for (int i = pos1; i >= 0; i--)
{
    outputData[pos2] = inputData[pos1];
    pos2 ++;

    cout << outputData[pos1] << " ";
}
Run Code Online (Sandbox Code Playgroud)

因为你总是试图打印,outputData[pos1]pos1在循环中永远不会改变.因此,您始终输出相同的字符.类似地,您总是将相同的字符复制inputDataoutputData数组中,因此当循环退出时,outputData将在不同的索引处包含相同的字符.

你可能会有更好的运气,以下循环至少复制和打印正确的字符

pos2 = 0;
for (int i = pos1-1; i >= 0; i--)
{
    outputData[pos2] = inputData[i];
    cout << outputData[pos2] << " ";
    pos2++;

}
Run Code Online (Sandbox Code Playgroud)

你可能有其他问题与您的代码也因为你不告诉我们在什么值的问题pos1,并pos2已与初始化.