首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

从txt文档中读取数据保存到一个多维数组解决方法

2013-12-21 
从txt文档中读取数据保存到一个多维数组我想要从一个已经生成的txt文档中读取数据然后将这些数据保存到一

从txt文档中读取数据保存到一个多维数组
我想要从一个已经生成的txt文档中读取数据然后将这些数据保存到一个多维数组中,但是我并不知道这个多维数组会有多少行和列,找到了一个程序,但是只是实现了读取数据的功能,并没有保存到数组里面,到底应该怎么做啊?求赐教。
[解决办法]

引用:
知道列数是3列,但是行数是不知道的,只能从txt中读取。



#include <vector>
#include <fstream>
int main()
{
  struct Row
  {
    int a,b,c;
  };
  std::vector<Row> rows;
  std::ifstream ifs("input.dat");
  Row r;
  while(ifs >> r.a >> r.b >> r.c)
  {
    rows.push_back(r);
  }
  //.....
  return 0;
}

随手写的,没有测试。
[解决办法]
仅供参考:
#include <stdio.h>
#define MAXL 10000
int d[MAXL][3];
FILE *f;
int i,n;
char ln[200];
int main() {
    f=fopen("in.txt","r");
    if (NULL==f) {
        printf("Can not open file in.txt!\n");
        return 1;
    }
    i=0;
    while (1) {
        if (NULL==fgets(ln,200,f)) break;
        if (3==sscanf(ln,"%d%d%d",&d[i][0],&d[i][1],&d[i][2])) {
            i++;
            if (i>=MAXL) {
                printf("Too many lines (>%d), Ignored!\n",MAXL);
                break;
            }
        } else {
            printf("Line %d format error:%s",i+1,ln);
        }
    }
    fclose(f);
    n=i;
    for (i=0;i<n;i++) {
        printf("%d:%d %d %d\n",i,d[i][0],d[i][1],d[i][2]);
    }
    return 0;
}

[解决办法]
能用一位数组实现吗?多维到最后也可以分解为一维呀
int main()
{
int i = 0;
char buf[10240];

FILE* fp = NULL;
fp = fopen("d:/TAX.txt","r");
assert(NULL != fp);

while((char)EOF != buf[i])
{
buf[i] = fgetc(fp);
printf("%c", buf[i]);
}
buf[i] = '\0';

printf("\n");

return 0;
}

热点排行