b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

fscanf函数用法_fun函数怎么用_fprintf函数

电脑杂谈  发布时间:2016-12-30 20:05:56  来源:网络整理

fscanf函数用法_fun函数怎么用_fprintf函数

以前解析有规律的文件的时候要么用正则表达式,要么就是傻傻的自己写程序来解析有规律的文件。今天突然发现c的库函数中有一个现成的可以解析有规律的文件的函数,就是fscanf()函数。哎 以前自己做了这么多无用功,在这里详细解析一下fscanf函数:

fscanf()函数(有点像正则表达式):

功 能: 从一个流中执行式化输入,fscanf遇到空和换行时结束,注意空时也结束。fscanf函数用法

用 法:int fscanf(FILE *stream, char *format,[argument...]);

int fscanf(文件指针,式字符串,输入列表);

for example:

FILE*fp;

chara[10];

intb;

doublec;

fscanf(fp,"%s%d%lf",a,&b,&c)

返回:整型,数等于[argument...]的个数

其中的format就是相当于正则表达式中的式,即用什么样的式来分隔文件中的信息。光说不好理解,一下用一个例子来说明具体怎么用:

首先我有一个data。txt的文件里面的数据式如下:

fscanf函数用法_fprintf函数_fun函数怎么用

2,50,41,w,20.585828

4,52,51,r,52.012547

.........................

许多条类的记录,都是以,来分隔的

.......................

我实现的功能就是把上面文件中的数据的五个字段赋给相应的五个变量,并且输出这些变量的。实现的程序如下:

#include<stdio.h>

#include<stdlib.h>

int main()

{

int fd;

long dev;

long offset;

long length;

fscanf函数用法_fprintf函数_fun函数怎么用

char ch;

double ts=0.000000;

if((fd=fopen("/home/haixian/ceshi/data.txt","r"))<0)

{

printf("open the file is error!\n");

exit(0);

}

lseek(fd,0,SEEK_SET);

while(5==fscanf(fd,"%ld,%ld,%ld,%c,%lf\n",&dev,&offset,&length,&ch,&ts))

{在这里就是第二个参数指定分隔参数的式,在这里使用的是,来分隔。这样就很容易的获取了记录的各个字段的并不需要自己编写函数来进行解析什么的。

printf("%ld,%ld,%ld,%c,%lf\n",dev,offset,length,ch,ts);

}

close(fd);

return 0;

}

通过上面的例子能很好的理解fscanf函数的用法。以前自己写程序解析这种文件,费力还不讨好,得出的结果还不准确。fscanf函数用法哎 只能感叹我太弱了,以后还得好好学习!!!!


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23979-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...