Проблема копирования значений в многомерный массив - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь написать программу, которая может взять 81 целое число из текстового файла и добавить их в многомерный массив.

Я читаю из текстового файла, содержащего следующие целые числа:

1  2  3  4  5  6  7  8  9 
10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27 
28 29 30 31 32 33 34 35 36 
37 38 39 40 41 42 43 44 45 
46 47 48 49 50 51 52 53 54 
55 56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71 72
73 74 75 76 77 78 79 80 81

Это код, который я использую для этого

int main() 
{
    ifstream myFile; //ifstream object

    int num[8][8]; //multidimensional array
    int TempStorage[80]; //temporary storage for reading numbers off of text file
    int maybe; //no clue what this one does

    int i=0; //used for temp storage input
    int x=0; //used to copy values to multidimensional array

    myFile.open("numbers.txt"); //open document

    if(myFile.is_open()) //check if document is open
    {
        while(myFile >> maybe) //while numbers are still on document
        {
            TempStorage[i] = maybe; //input numbers into temporary array
            i++; //index 
        }
        myFile.close(); //close document

        for(int n=0;n<9;n++) //first loop to control first index n
        {
            for(int q=0;q<9;q++) //second loop to control second index q        
            {
                num[n][q] = TempStorage[x];//read numbers into multidimensional array
                x++;    
            }
        }
    }
    return 0;
}

Однако, когда я вывожу все значения, хранящиеся в многомерном массиве, я получаю следующий вывод. По какой-то причине кажется, что значение предыдущего индекса и значение первого нового индекса равны.

1  2  3  4  5  6  7  8  10
10 11 12 13 14 15 16 17 19
19 20 21 22 23 24 25 26 28
28 29 30 31 32 33 34 35 37
37 38 39 40 41 42 43 44 46
46 47 48 49 50 51 52 53 55
55 56 57 58 59 60 61 62 64
64 65 66 67 68 69 70 71 73
73 74 75 76 77 78 79 80 1

Я изменил условия в своих циклах for почти на все, что мог придумать. Это просто какая-то ужасно простая проблема, которую я упускаю из виду, или это что-то еще?

1 Ответ

1 голос
/ 19 июня 2019
for(int n=0;n<9;n++) 

Ваш многомерный массив имеет размер [8], что означает, что он может быть от 0 до 7.

...