求助:从文本读入数据,但运行结果有问题
#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<fstream>
#include<cassert>
using namespace std;
int main()
{
ifstream infile;
infile.open("data.txt");
assert(infile.is_open());
int Sodu[9][9]={0},i=0,j=0,k=0;
string line;
while(infile)
{
char cline[22]={0};
getline(infile,line);
strcpy(cline,line.c_str());
for(k=0;k<strlen(cline);++k)
{
if(cline[k]==' ')continue;
else
{Sodu[i][j]=cline[k]-'0';cout<<Sodu[i][j++]<<" ";}
}
++i;
j=0;
cout<<endl;
}
for(i=0;i<9;++i)
{
for(j=0;j<9;++j)
cout<<Sodu[i][j]<<" ";
cout<<endl;
}
system("pause");
return 0;
}
/*data.txt中的内容:
2 3 6 5 9 7 1 4 8
5 7 8 3 1 4 2 9 6
9 1 4 6 2 8 5 7 3
8 9 5 7 4 2 3 6 1
6 4 7 1 8 3 9 5 2
3 2 1 9 5 6 4 8 7
1 8 9 2 7 5 6 3 4
4 6 2 8 3 9 7 1 5
7 5 3 4 6 1 8 2 9
*/当上面数阵只要少于九行时就可以。
为什么有九行时输出结果会多一行,会重复输出第九行。