
fscanf就是从文件中读取数据,保存到第三个参数开始的变量里
fp是一个FILE类型的指针
fscanf(fp,"%s",temp_str);
//
就是从文件指针fp里面读取一个字符串,保存到temp_str里面,跟scanf差不多,只是scanf是从键盘输入,fscanf是从文件里读取
fscanf(fp,"%lf",&min_snr);
//
同理是从文件中读取一个double类型的数据,保存到min_snr里面
str是一个2维数组,每次从fp指向的文件里面读取一串放到str的一行里面,fscanf和scanf差不多,都是读取str的值,fscanf从fp指向文件里面读取,scanf从标准输入里面读取
for (i=0;i<2;i++) fscanf(fin,"%[^\n]%c"); 跳过2行。
% 是“跳过”
[^\n] 字符串的分隔符是 "\n", 中括号里可以写 分隔符 表
%[^\n] 跳过 \n 前的所有 字符串。
%c 是“跳过”行尾 的 换行符。
#include <stdioh>
#include <stdlibh>
main()
{
FILE fin;
int x,y;
int i;
fin=fopen("atxt","r");
for (i=0;i<2;i++) fscanf(fin,"%[^\n]%c"); // 跳2 行
fscanf(fin,"%d %d",&x,&y); // 读 2 个 int
printf("%d %d\n",x,y); // 打出 3 33
fclose(fin);
}
文件例子:
1 2 3
2 345 56
3 33 333
4 444 444
scanf和fscanf函数是不能读空格和回车符的,在读取的时候会自动过滤掉这些分隔符。
要想读空格,必须用gets函数,在stringh中有定义,需要实现include它。
gets的用法:
chara[10];
gets(a);
c++下也可以用getline函数,不过建议VC用户不要用,因为微软的C++编译器有个经典的getlinebug在缓冲的时候会多缓冲一行。
以上就是关于在C/C++中,fscanf(fp,"%s",temp_str);和fscanf(fp,"%lf",&min_snr);的意思分别是什么全部的内容,包括:在C/C++中,fscanf(fp,"%s",temp_str);和fscanf(fp,"%lf",&min_snr);的意思分别是什么、在C语言中,while(fscanf(fp,"%s",str[n])>0) n++;是什么意思、C语言fscanf函数怎么从文件第三行开始读起等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)