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

C++ 怎么去解析.dat 的文件!

2013-08-16 
C++ 如何去解析.dat 的文件!!!!现在有一个.dat的文件内部内容如下:diamond 4 浙江省精细化客观集成产品_13

C++ 如何去解析.dat 的文件!!!!
现在有一个.dat的文件  内部内容如下:


diamond 4 浙江省精细化客观集成产品_13年08月04日20时预报08月10日20时(+144h)12小时累积降水
2013 8 10 20
144  0  0.125  0.125  116 128 25 33 
97 65  5  5  300  1  0
      3.27      3.14      3.01      2.72      2.44      2.73      3.02      3.17      3.33      5.01      6.68      7.86      9.03      8.80      8.56      7.87      7.17      5.62      4.06      2.23      0.40      0.60      0.79      0.50      0.21      0.21      0.21      0.18      0.15      0.25      0.35      0.43      0.52      0.43      0.35      0.25      0.15      0.29      0.43      0.69      0.95      1.13      1.31      1.56      1.80      2.01      2.23      1.14      0.06      0.07      0.08      0.10      0.12      0.13      0.14      0.16      0.18      0.18      0.17      0.18      0.18      0.14      0.09      0.11      0.12      0.08      0.03      0.03      0.03      0.03      0.03      0.05      0.06      0.11      0.15      0.24      0.34      0.46      0.58      0.72      0.85      1.06      1.27      1.40      1.53      1.97      2.41      2.75      3.08      3.24      3.39      3.45      3.51      3.37      3.24      3.16      3.08


      3.26      3.13      3.09      2.91      2.60      4.27      4.86      4.97      5.52      6.25      6.92      7.18      7.33      7.16      7.29 

现在想要红色部分的数据存入到数组,请问我应该怎么弄???最好能给源码,思路也行,不过希望大神们解答的稍微详细点,新手!!    C++ 源代码 .dat 文件读取 行业数据
[解决办法]
没实际编译链接调试,不保证对。仅供参考:

#include <stdio.h>
#define MAXD 200
#define MAXL 1024
char ln[MAXL];
double d[MAXD];
int i,n;
FILE *f;
int main() {
    f=fopen("in.dat","r");
    if (NULL==f) {
        fprintf(stderr,"Can not open file in.dat!\n");
        return 1;
    }
    fgets(ln,1024,f);
    fgets(ln,1024,f);
    fgets(ln,1024,f);
    fgets(ln,1024,f);
    i=0;
    while (1) {
        if (1!=fscanf(f,"%lf",&d[i])) break;
        i++;
        if (i>=MAXD) {
            printf("Too many data(>=%d)!\n",MAXD);
            break;
        }
    }
    fclose(f);
    n=i;
    printf("%d data read:\n",n);
    for (i=0;i<n;i++) {


        printf("%lg ",d[i]);
    }
    return 0;
}

热点排行