我的数据文件是一个ASCII文件,是个很大的文件,大小能有三四个G,里面的一些数据格式如图所示。
POSITION 8.0998 -0.0001 -1.2186 0.0048 3.8209 0.0015
VELOCITY 0.0670 0.0001 0.3056 0.0109 -1.4838 0.0006
ACCELERATION 0.0483 -0.0001 -0.2876 -0.0159 -6.6385 -0.0008
在这个数据文件里,我想把图中VELOCITY那行的第五个数据提出来,然后后面还有很多这样的数据,这个数据文件有好几十万上百万行。想把每个VELOCITY这行的那个数据给提取出来,利用C语言把想要的数据读出来,再把读出的数据另存到一个txt的文件中。
请问这个问题用C语言怎么实现,谢谢大神们
利用库函数fscanf读取数据的选择功能,每次读取一行中的第一个数据(字符串)和指定位置的数据分别赋给cahr型数组和double型变量,其余的“跳过”。检测读取的字符串是否为特定行首,若是则将读取的double数据写入输出文件。设数据文件在当前目录下,名为1234.txt,举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.我的数据文件不是txt格式的,而是一个ASCII文件。需要提取的是VELOCITY那行的第五个数据,这个数据文件在前面一些数据可能不要,想从某个固定位置开始提取数据。后面还有很多VELOCITY的数据,提取VELOCITY行的那个,最后提取出来的数据可能有好几万个。这段程序也可以用吗?
追答ASCII文件就是.txt文件,是用系统的《笔记本》可以直接浏览的文件。
你把代码中的文件名改为实际文件名试一下就知道是否可行了。
看你提供的例子 第一列不一定是字符串啊 还有个8907 1的一行
试试我这个吧
好用的话给个采纳 不好用就算啦
#include <stdio.h>我的数据文件不是txt格式的,而是一个ASCII文件。你所看到的8907意思是在8907秒的时候所得到的数据,时间是连续的,一直往下都还有。我想从某个时间出开始提取,然后最后得到的在一段连续时间内的VELOCITY那行的第五个数据,这样最后得到的可能有几万个。这个程序也能用吗?
本回答被网友采纳