如何编写C++代码以读取txt格式文件内容?

来源:百度知道 编辑:UC知道 时间:2024/04/30 02:46:05
我是个c++初学者,提的问题很小儿科,请各位高手不要笑话!
情况是这样的:从数据库中导出的txt格式的文件,内容都是数字,每行9个,每个数字之间用空格(或制表符)分开。有多少行不确定。格式如下例:
1 2 3 4 5 6 7 8 9
11 12 13 14 15 16 17 18 19
21 22 23 24 25 26 27 28 29
……
我想把这些数字读入到一个二维数组中,需要怎样实现?因为不知道具体有多少行,所以请问如何在不确定行数的情况下,把这些数字读入数组?

不胜感激!小弟在此先行谢过!

//---------------------------------------------------------------------------
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;
int main(void)
{
int **a; /*二维数组指针*/
int i,n,r;
ifstream inf("c:\\test.txt"); /*打开要读取的文件*/
if (!inf) {
exit(1);
}
for (i = 0,r=0; inf>>n; i++) { /*从文件读取整数,动态创建二维数组,并将整数存入数组*/
if (!i) {
a=(int **)malloc(sizeof(int *));
a[0]=(int *)malloc(sizeof(int)*9); /*每行有9个元素*/
}
else if (i%9==0) {
a=(int **)realloc(a,sizeof(int *)*(i/9+1));
a[i/9]=(int *)malloc(sizeof(int)*9);
}
a[i/9][i%9]=n;
r++;
}
inf.close(); /*文件读取完成,数组创建完毕,关闭文件*/
for (i = 0; i<r; i++) { /*输出二维数组的内容,并释放为二维数组分配的空间*/
if (i&&i%9==0) {
cout<<endl;
free(a[i/9-1]);
}
cout<<a[i/9][i%9]<&