比如文件里有这些字符
“ATOM 1 C MOL C 1 3.866 0.612 1.345 1.00 0.00 C ”
我想跳过那些字母,只将 1 1 3.866这些数字读取到一个数组里,应该怎么做呢?
利用C语言中的fscanf()函数特点可以实现从文件中读取指定类型的数据
fscanf()函数在从文件读取数据后,返回读取的有效数据的个数,当读到的数据不是有效数据时,则会返回0,当读出错时,返回-1。
实现方法:
定义接收数据的数组,因为数据中有小数,所以,定义成double类型数组
定义文件指针fp,打开文件
循环读取数据,采用fscanf(fp,"%lf", &ad[i] );来读取一个浮点数据
如果fscanf()函数返回值是1,说明成功读取一个数值,i++,继续读取下一个数值
否则,使用fgetc(fp)读取一个字符,让文件指针后移一位,继续尝试读取数值
当文件读取结束 feof(fp),结束循环
输出数组中的数据
参考代码: