c语言怎样按照行读取多组(如169个)浮点数据?
我有一组169个按行存储浮点数据, !!!!注意一定要按行来获取数据!!!!!!,如
-0.041534 0.075458 0.125884 -0.119297 -0.109003 -0.005356 -0.035634 -0.069634 0.014044 0.187113 -0.207388 -0.003791 0.038806 -0.086751 -0.227366 0.127539 0.014591 -0.101418 -0.046260 0.035553 -0.009294 -0.032989 0.047126 -0.230441 0.016459 -0.057562 0.214803 0.055086 -0.196953 -0.125830 0.055267 0.039813 -0.149408 0.036923 0.068638 -0.114248 -0.129709 0.141893 -0.033887 0.093024 -0.088547 0.012981 -0.202999 -0.077986 0.023384 0.150309 -0.163984 -0.239862 -0.082718 0.039668 -0.092940 -0.005184 0.205974 -0.044229 0.172142 -0.226272 -0.075567 0.060631 -0.108353 0.160511 0.023597 0.065444 0.129215 -0.035263 -0.010744 -0.093184 -0.080180 0.024636 -0.016579 -0.027837 -0.011008 0.051407 -0.170007 0.198092 -0.064775 -0.018346 -0.196314 0.070390 0.033234 -0.022613 0.066513 -0.136225 0.106919 -0.137492 0.104262 -0.034337 -0.132523 -0.088268 0.078946 -0.138155 0.040438 0.174366 -0.185534 0.165147 -0.001113 -0.089207 -0.301762 0.023248 -0.095162 -0.153458 -0.107724 0.048973 0.033003 0.030922 -0.004928 0.066224 -0.130826 0.175129 -0.056769 0.011604 0.138880 0.215768 -0.101236 -0.178283 -0.010201 -0.135965 0.136387 0.109390 -0.077946 0.183571 -0.196223 0.135005 -0.015047 0.096648 0.077280 -0.277536 0.002396 -0.009316 -0.120833 -0.290003 0.023691 0.027691 0.047670 -0.078493 -0.127261 0.031569 0.068580 0.068191 0.275069 -0.061078 0.103908 0.086652 0.040250 -0.088237 -0.135148 -0.199208 0.006514 0.112101 0.076940 0.048842 0.110466 0.138432 -0.112149 -0.021517 -0.162104 -0.072641 0.023116 -0.022867 0.139739 -0.020996 -0.144180 -0.131307 -0.061731 0.004564 -0.001211 0.040581 -0.153690 0.053347 0.163220
现在需要将其利用c语言读入并存储到相应的一维数组中,我的大致思路是:
先将数据按照字符串读入,
再将字符串中的数值按浮点数据读入数组
最后在屏幕输出
具体程序如下:
int main()
{
char filename[] = "data.txt"; //文件名
FILE *fp;
int i;
float data;//temporary values for reading data
char StrLine[1690]; //每行最大读取的字符数
float Znode[169];//待存储数据的一维数组
if((fp = fopen(filename,"r")) == NULL) //判断文件是否存在及可读
{
printf("error!");
return -1;
}
fgets(StrLine,1690,fp); //读取一行
data.rar
(1.07 KB)
printf("%s\n", StrLine); //屏幕输出读取的字符串
for (i=0;i<169;i++)
{
sscanf(StrLine,"%f",&data);//从字符串读取浮点数据
Znode[i] = data;//将浮点数据存入一维数组
printf("%9.6f\n",Znode[i]);//屏幕显示数组元素
}
fclose(fp); //关闭文件
return 0;
}
但输出的结果 是不断的输出第一个数值-0.041534,而并没有将第2个到第169个数据存入矩阵Znode中,我没有相同原因,请教高手指教指教,或者还有更好的思路也可以,多谢了
[此贴子已经被作者于2019-1-9 21:10编辑过]