문제는 배열의 인덱싱 된 점에 값을 저장할 수 없다는 것입니다. 2D 배열을 인쇄하려고하면 올바른 형식으로 인쇄되지만 텍스트 파일의 문자 대신 미친 숫자가 표시됩니다. 이것은 필자가 배열을 채우는 제 기능이 제대로 작동하지 않는다고 믿게하지만, 문제가 어디에 있는지 진단하는 데 어려움을 겪고 있습니다..txt 파일에서 정수를 읽고 2 차원 배열에 저장하려고합니다.
여기에 배열을 채우는 기능이 있습니다.
void fill2dArray(int array[][4], int size, int& numberUsed)
{
ifstream recordsFile;
int index1, index2;
recordsFile.open("data11.txt");
while ((index1 < size) && (!recordsFile.eof()))
{
for (index1 = 0; index1 < size; index1 = index1 + 1)
for(index2 = 0; index2 < 4; index2 = index2 + 1)
recordsFile >> array[index1][index2];
}
numberUsed = index1;
recordsFile.close();
}
다음은 배열을 인쇄하는 제 기능입니다. 여기
void print2dArray(const int array[][4], int numberUsed)
{
int index1, index2;
for (index1 = 0; index1 < numberUsed; index1 = index1 + 1)
{
for (index2 = 0; index2 < 4; index2 = index2 + 1)
cout << array[index1][index2] << " ";
cout << endl;
}
}
여기
const int NOP = 25; //Max number of players in the records file
void fill2dArray(int array[][4], int size, int& numberUsed);
void print2dArray(const int array[][4], int numberUsed);
메인
int main()
{
int records[NOP][4], numberUsed;
fill2dArray(records, NOP, numberUsed);
print2dArray(records, numberUsed);
return 0;
}
그리고 (프로그램과 같은 폴더에 저장되어있는) 텍스트 파일
1 2 1 1
2 3 2 3
3 2 3 1
4 0 3 4
5 2 1 3
6 5 2 5
7 2 4 2
8 4 1 0
9 0 2 3
10 1 4 3
11 2 3 1
12 3 5 6
13 2 3 5
14 2 1 0
15 2 1 4
16 7 3 5
17 9 3 2
18 6 2 1
19 3 2 0
20 1 0 0
21 0 0 0
22 1 2 5
23 2 4 2
24 6 2 7
25 6 2 4
인 전역/원형 인
일반적인 디버거 사용 사례입니다. –
그것에 대해 자세히 설명해 주시겠습니까? – Victor
또한 'while ((index1