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
代码如下:
- # 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\n",&x[i], &y[i], &z[i]); //%lf之间应该有逗号,因为没有逗号只能读第一个数。用&是因为要把数存到对应数组元素的地址中去。\n是换行读取
- }
- fclose(fq);
- return 0;
- }
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
代码如下:
- # 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\n",&x[i], &y[i], &z[i]); //%lf之间应该有逗号,因为没有逗号只能读第一个数。用&是因为要把数存到对应数组元素的地址中去。\n是换行读取
- }
- fclose(fq);
- return 0;
- }