C++ scanf()函数

scanf()函数的头文件是<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


代码如下:

  1. # include <iostream>
  2. int main(void){
  3. FILE *fq;
  4. double x[ 10], y[ 10], z[ 10];
  5. fq=fopen( "step.dat" , "rt+"); //"rt+"是打开一个文本文件,可以读写。
  6. for ( int i= 1; i<= 10; i++){
  7. fscanf(fq, "%lf ,%lf ,%lf\n",&x[i], &y[i], &z[i]); //%lf之间应该有逗号,因为没有逗号只能读第一个数。用&是因为要把数存到对应数组元素的地址中去。\n是换行读取
  8. }
  9. fclose(fq);
  10. return 0;
  11. }

猜你喜欢

转载自blog.csdn.net/qq_40213457/article/details/81056358