用c语言怎么将这些txt文件中的数据读出来?请教大神

lxq0228 2016-10-31 12:33:06
将这些txt文件中的数据读出来:
0.000000 0.000000 0.080000 0.000000 1.280000
0.010000 -0.000821 -0.189263 0.019029 1.256937
0.020000 -0.002743 -0.323171 0.028411 1.244931
0.030000 -0.005667 -0.456375 0.037702 1.232603
0.040000 -0.009587 -0.588727 0.046899 1.219949
0.050000 -0.014496 -0.720080 0.056000 1.206965
0.060000 -0.020385 -0.850288 0.065003 1.193648
0.070000 -0.027247 -0.979208 0.073904 1.179996
0.080000 -0.035070 -1.106697 0.082702 1.166004
0.090000 -0.043843 -1.232616 0.091393 1.151672
0.100000 -0.053555 -1.356825 0.099976 1.136996
0.110000 -0.064191 -1.479189 0.108447 1.121976
0.120000 -0.075738 -1.599574 0.116805 1.106610
0.130000 -0.088180 -1.717848 0.125046 1.090897
0.140000 -0.101500 -1.833883 0.133167 1.074837
0.150000 -0.115682 -1.947552 0.141167 1.058429
0.160000 -0.130707 -2.058733 0.149043 1.041673
0.170000 -0.146557 -2.167304 0.156792 1.024571
0.180000 -0.163210 -2.273150 0.164411 1.007122
0.190000 -0.180643 -2.374961 0.171898 0.989330
0.200000 -0.198827 -2.473700 0.179250 0.971196
0.210000 -0.217741 -2.569415 0.186465 0.952722
0.220000 -0.237361 -2.662003 0.193540 0.933912
0.230000 -0.257663 -2.751367 0.200472 0.914767
0.240000 -0.278623 -2.837414 0.207260 0.895291
0.250000 -0.300216 -2.920052 0.213901 0.875487
0.260000 -0.322415 -2.999197 0.220392 0.855359
0.270000 -0.345195 -3.074766 0.226731 0.834911
0.280000 -0.368528 -3.146681 0.232915 0.814147
0.290000 -0.392386 -3.214869 0.238942 0.793072
0.300000 -0.416741 -3.279261 0.244810 0.771691
0.310000 -0.441565 -3.339791 0.250517 0.750011
0.320000 -0.466828 -3.396400 0.256059 0.728035
0.330000 -0.492501 -3.449031 0.261436 0.705771
0.340000 -0.518554 -3.497633 0.266645 0.683225
0.350000 -0.544956 -3.542159 0.271684 0.660403
0.360000 -0.571676 -3.582568 0.276551 0.637313
0.370000 -0.598684 -3.618822 0.281243 0.613963
0.380000 -0.625948 -3.650889 0.285760 0.590358
0.390000 -0.653437 -3.678740 0.290098 0.566508
0.400000 -0.681119 -3.702352 0.294257 0.542421
0.410000 -0.708961 -3.721708 0.298234 0.518105
0.420000 -0.736934 -3.736794 0.302028 0.493569
0.430000 -0.765003 -3.747601 0.305637 0.468822
0.440000 -0.793137 -3.754125 0.309059 0.443872
0.450000 -0.821304 -3.756368 0.312294 0.418730
0.460000 -0.849472 -3.754336 0.315340 0.393406
0.470000 -0.877608 -3.748038 0.318195 0.367908
0.480000 -0.905682 -3.737491 0.320858 0.342247
0.490000 -0.933660 -3.722715 0.323328 0.316434
0.500000 -0.961512 -3.703734 0.325604 0.290479
0.510000 -0.989206 -3.680579 0.327685 0.264393
0.520000 -1.016711 -3.653283 0.329570 0.238186
0.530000 -1.043995 -3.621885 0.331258 0.211870
0.540000 -1.071029 -3.586429 0.332748 0.185456
0.550000 -1.097782 -3.546963 0.334039 0.158954
0.560000 -1.124223 -3.503538 0.335132 0.132377
0.570000 -1.150325 -3.456212 0.336025 0.105736
0.580000 -1.176057 -3.405040 0.336745 0.089031
0.590000 -1.201391 -3.350072 0.337368 0.077243
0.600000 -1.226299 -3.291373 0.337903 0.065379
0.610000 -1.250753 -3.229018 0.338349 0.053449
0.620000 -1.274725 -3.163083 0.338705 0.041463
0.630000 -1.298190 -3.093648 0.338971 0.029432
0.640000 -1.321121 -3.020797 0.339146 0.017367
0.650000 -1.343494 -2.944619 0.339231 0.005278
0.660000 -1.365283 -2.865206 0.339225 -0.006824
0.670000 -1.386464 -2.782653 0.339129 -0.018929
0.680000 -1.407015 -2.697058 0.338941 -0.031026
0.690000 -1.426913 -2.608522 0.338663 -0.043104
0.700000 -1.446136 -2.517152 0.338295 -0.055153
0.710000 -1.464663 -2.423055 0.337836 -0.067162
0.720000 -1.482475 -2.326342 0.337288 -0.079121
0.730000 -1.499552 -2.227127 0.336650 -0.091019
0.740000 -1.515876 -2.125525 0.335923 -0.102845
0.750000 -1.531429 -2.021656 0.335107 -0.114591
0.760000 -1.546196 -1.915640 0.334204 -0.126244
0.770000 -1.560159 -1.807602 0.333214 -0.137796
0.780000 -1.573305 -1.697666 0.332137 -0.149236
0.790000 -1.585620 -1.585960 0.330975 -0.160554
0.800000 -1.597090 -1.472612 0.329729 -0.171741
0.810000 -1.607705 -1.357754 0.328400 -0.182786
0.820000 -1.617453 -1.241518 0.326988 -0.193682
0.830000 -1.626325 -1.124037 0.325495 -0.204417
0.840000 -1.634311 -1.005447 0.323922 -0.214984
0.850000 -1.641404 -0.885882 0.322271 -0.225373
0.860000 -1.647597 -0.765480 0.320542 -0.235576
0.870000 -1.652885 -0.644378 0.318737 -0.245583
0.880000 -1.657262 -0.522713 0.316859 -0.255388
0.890000 -1.660724 -0.400625 0.314907 -0.264981
0.900000 -1.663270 -0.278251 0.312884 -0.274355
0.910000 -1.664898 -0.155731 0.310792 -0.283503
0.920000 -1.665606 -0.033203 0.308632 -0.292416
0.930000 -1.665396 0.089195 0.306407 -0.301089
0.940000 -1.664313 0.198002 0.304117 -0.309522
0.950000 -1.662427 0.304774 0.301764 -0.317724
0.960000 -1.659743 0.411057 0.299351 -0.325689
0.970000 -1.656263 0.516732 0.296880 -0.333412
0.980000 -1.651993 0.621681 0.294351 -0.340887
0.990000 -1.646940 0.725786 0.291767 -0.348110
1.000000 -1.641109 0.828931 0.289130 -0.355077
1.010000 -1.634509 0.931001 0.286442 -0.361782
1.020000 -1.627147 1.031881 0.283704 -0.368223
1.030000 -1.619034 1.131462 0.280919 -0.374394
1.040000 -1.610179 1.229630 0.278089 -0.380294
1.050000 -1.600593 1.326279 0.275215 -0.385918
1.060000 -1.590289 1.421301 0.272301 -0.391264
1.070000 -1.579278 1.514591 0.269347 -0.396329
1.080000 -1.567574 1.606046 0.266356 -0.401111
1.090000 -1.555192 1.695567 0.263331 -0.405608
1.100000 -1.542146 1.783055 0.260273 -0.409818
...全文
2111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
2know_clay 2016-11-01
  • 打赏
  • 举报
回复
http://blog.csdn.net/u011028771/article/details/52557886
赵4老师 2016-11-01
  • 打赏
  • 举报
回复
ipqtjmqj 2016-10-31
  • 打赏
  • 举报
回复
for (i = 0; i <= Num1; i++) { for (j = 0; j <= Num2; j++) { 小于等于改成小于
ipqtjmqj 2016-10-31
  • 打赏
  • 举报
回复
先getline, 然后strtod, 大概这样吧 #include <string> #include <ifstream> #include <vector> #include <stdlib.h> // strtod #define LINE_DATA_COUNT 5 void read_data(std::ifstream &ifstream_obj, std::vector<std::vector<double> > &data) { for (std::string tmp; std::getline(ifstream_obj, tmp);) { char *begin = tmp.c_str(); char *new_begin; std::vector<double> line_data; for (int i = 0; i != LINE_DATA_COUNT; ++i) { line_data.push_back(strtod(begin, &new_begin)); begin = new_begin; } data.push_back(line_data); } }
lxq0228 2016-10-31
  • 打赏
  • 举报
回复
#include <stdio.h> #include <math.h> #define Num1 2000 #define Num2 5 void main() { errno_t err; FILE* fp; if ((err = fopen_s(&fp, "G:\\Model16 01.txt", "a")) != 0) { printf("Cannot open this filefp1\n"); exit(0); } int i,j; double Y[Num1][Num2]; for (i = 0; i <= Num1; i++) { for (j = 0; j <= Num2; j++) { fscanf_s(fp, "%lf ", &Y[i][j]); printf("%lf \n", Y[i][j]); } } fclose(fp); } 这样的程序是错误的,读不出来!为什么?
paschen 2016-10-31
  • 打赏
  • 举报
回复
打开模式中,a 以附加的方式打开只文件 你要读的话应该用 r 打开 打开模式介绍可以参看;http://en.cppreference.com/w/c/io/fopen
小灸舞 版主 2016-10-31
  • 打赏
  • 举报
回复
1.你打开的MODE不对。 fopen_s(&fp, "e:\\Model16 01.txt", "a")应该是fopen_s(&fp, "e:\\Model16 01.txt", "r") 2.你应该接收判断fscanf_s的返回值,如果已经读取不到了就可以结束循环了

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define Num1 2000
#define Num2 5

void main()
{
	errno_t err;
	FILE* fp;
	if ((err = fopen_s(&fp, "e:\\Model16 01.txt", "r")) != 0)
	{
		printf("Cannot open this filefp1\n");
		exit(0);
	}
	int i, j, res = 0;
	double  Y[Num1][Num2];
	for (i = 0; i <= Num1; i++)
	{
		for (j = 0; j <= Num2; j++)
		{
			res = fscanf_s(fp, "%lf", &Y[i][j]);
			if (res == EOF)
				break;
			printf("%lf \n", Y[i][j]);
			
		}
		if (res == EOF)
			break;
	}
	fclose(fp);
}
振翅高飞 2016-10-31
  • 打赏
  • 举报
回复
fgets();//获取每一行的缓存数据 sscanf();//将缓存数据写入变量

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧