牛骨文教育服务平台(让学习变的简单)
博文笔记

C++用fscanf()函数读取TXT文件内容

创建时间:2016-11-12 投稿人: 浏览次数:8787

fscanf()函数的头文件是<stdio.h>,函数原型为int fscanf(FILE*stream, constchar*format, [argument...]); 其功能为根据数据格式(format)从输入流(stream)中写入数据(argument);与fgets的差别在于:fscanf遇到空格和换行时结束,注意空格时也结束,fgets遇到空格不结束。


Ex:

现在有这样一个数据文件,想用fscanf函数读取,每列作为一个数组:

1.000000e+000 2.000000e+000 -3.000000e+000
2.000000e+000 3.000000e+000 -2.000000e+000
3.000000e+000 4.000000e+000 -1.000000e+000
4.000000e+000 5.000000e+000 0.000000e+000
5.000000e+000 6.000000e+000 1.000000e+000
6.000000e+000 7.000000e+000 2.000000e+000
7.000000e+000 8.000000e+000 3.000000e+000
8.000000e+000 9.000000e+000 4.000000e+000
9.000000e+000 1.000000e+001 5.000000e+000
1.000000e+001 1.100000e+001 6.000000e+000


代码如下:

# include <iostream>

int main(void){
FILE  *fq;
double x[10], y[10], z[10];

fq=fopen("step.dat" ,"rt+");//"rt+"是打开一个文本文件,可以读写。
for (int i=1; i<=10; i++){
fscanf(fq,"%lf ,%lf ,%lf
",&x[i], &y[i], &z[i]);//%lf之间应该有逗号,因为没有逗号只能读第一个数。用&是因为要把数存到对应数组元素的地址中去。
是换行读取
}
fclose(fq);
return 0;
}


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。