我正在开发一个程序,该程序将文本文件中的一系列整数读取到二维数组中。
该文件包含 40 行,每行 81 个数字,它们之间没有空格。
问题是,当我在循环完成后计算数组时,它会在预期输出之前array[0][0]
和之前输出 2 个随机数。array[0][1]
我认为这与换行符/回车符有关。循环的第一次迭代运行完美。这是代码:
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int array[9][9];
//Open file:
fstream ifile;
ifile.open("numbers.txt", ios::in);
if (ifile.fail())
{
cout << "Could not open numbers.txt" << endl;
return -1;
}
while (!ifile.eof())
{
for(int i=0; i<9; i++)
{
for(int j=0; j<9; j++)
{
int n = ifile.get();
if(isdigit(n))
{
array[i][j] = n - '0';
}
cout<<"array ["<<i<<"]["<<j<<"] is "<<array[i][j]<<endl;
}
} cout<<"This is a test"<<endl;
}
return 0;
}