读取.dat文件中的数字,其中数字按列顺序排列到C中的数组中

时间:2014-11-18 17:06:42

标签: c arrays file-read

#include<stdio.h>
#include<stdlib.h>

int main()
{
     int block[100];
     int i = 0;

     FILE *fp;

     fp = fopen("blockage.dat","r");

     if (fp != NULL){
     while( !feof(fp) )
     {
         fscanf(fp,"%d",&block[i++]);
     }
     }
     fclose(fp);

     return 0;

}

我的blockage.dat文件如下所示:

3.712e+05
4.265e+05
5.345e+05
....

数字按行排列。所以我的C程序本身就停留在第一个循环中。 我该如何排序?我如何确保它进入下一行?

2 个答案:

答案 0 :(得分:2)

您的计划中宣布i的位置?

将i设为0。

int i = 0;

该文件包含浮动类型数据。 所以你的数组应该是

float block[100];

然后做

while((fscanf(fp,"%f",&block[i++])) != EOF);

根据您所阅读的值,您可以使用doublelong double类型声明数组。

答案 1 :(得分:0)

问题与安排无关;你试图将浮点数读入整数变量。