曾经解析有规律的文件的时候要么用正則表達式,要么就是傻傻的自己敲代码来解析有规律的文件。今天突然发现c的库函数中有一个现成的能够解析有规律的文件的函数,就是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的文件中面的数据格式例如以下:

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;
  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))
  {在这里就是第二个參数指定分隔參数的格式,在这里使用的是,来分隔。这样就非常easy的获取了记录的各个字段的值并不须要自己编写函数来进行解析什么的。
     printf("%ld,%ld,%ld,%c,%lf\n",dev,offset,length,ch,ts);
  }
close(fd);
return 0;
}

通过上面的样例能非常好的理解fscanf函数的使用方法。曾经自己敲代码解析这样的文件,费力还不讨好,得出的结果还不准确。哎 仅仅能感叹我太弱了,以后还得好好学习!!!!

fscanf()函数具体解释相关推荐

  1. fscanf php,php fscanf 函数_PHP教程

    php fscanf 函数 fscanf ( PHP 4中" = 4.0.1 , PHP 5中) fscanf -解析输入文件的格式根据 描述 混合fscanf (资源$处理,字符串$格式[ ...

  2. feof函数,fscanf函数,strtok函数等遇到的小疑惑解决办法

    feof函数,fscanf函数,strtok函数等遇到的小疑惑解决办法       近几天我等几个小菜鸟要做一个快译通软件,简单实现根据英语查汉语,本人负责将dict.txt词库中的单词调入内存哈希表 ...

  3. C++ fscanf函数分割读取文本文件

    描述 C 库函数 int fscanf(FILE *stream, const char *format, ...) 从流 stream 读取格式化输入,头文件是<stdio.h>,  f ...

  4. scanf函数具体解释与缓冲区

    1.基本信息 函数原型: int scanf( char *format, args, ...); 函数返回值: 读入并赋给args的数据个数.遇到文件结束返回EOF,出错返回0. 函数功能: sca ...

  5. fscanf()php,fscanf函数的用法

    以前解析有规律的文件的时候要么用正则表达式,要么就是傻傻的自己写程序来解析有规律的文件.今天突然发现c的库函数中有一个现成的可以解析有规律的文件的函数,就是fscanf()函数. fscanf 位于头 ...

  6. fprintf/fscanf函数分析

    fprintf/fscanf函数分析 宗旨:技术的学习是有限的,分享的精神是无限的. fprintf/fscanf函数与printf/scanf区别:printf/scanf专门针对标准输入输出流,f ...

  7. C语言fscanf函数了解

    fscanf函数从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束.这与fgets有区别,fgets遇到空格不结束. 原型:int fscanf(FILE *stream, ...

  8. pytorch中的gather函数_Pytorch中Emdedding函数的解释及使用方法

    函数:torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2.0, ...

  9. C语言中fscanf的函数,C语言fprintf()和fscanf()函数

    fprintf()函数用于将一组字符写入文件.它将格式化的输出发送到流. fprintf()函数的语法如下: int fprintf(FILE *stream, const char *format ...

最新文章

  1. android根据ip获取域名_android常用工具类 通过域名获取ip
  2. CVPR 2021评审出炉,评审员奇葩意见遭热议 | AI日报
  3. python动态网页开发教程_python django创建一个属于自己的动态网站
  4. linux find命令使用示例
  5. 【图像处理】——Python图像分割边缘检测算法之一阶梯度算子(Roberts、Prewitt、Sobel、 Kirsch、Canny算子)
  6. 带有JWT示例的​​Spring Oauth2
  7. html5移动web开发黑马掌上商城_这套web前端与移动开发教程,帮助了众多小白转行就业...
  8. Bootstrap 禁用导航链接
  9. Mac技巧:如何使用macOS Big Sur中“通知中心”的小组件?
  10. 作业01-Java基本概念
  11. PHP获取指定月份第一天、最后一天
  12. 最优化算法 之 遗传算法代码实现及说明
  13. Android平板怎么截屏,华为平板怎么截屏(华为平板快速截图)
  14. 高中生该怎样自学编程?
  15. coap协议说明及函数使用
  16. 详细讲解WIN7系统上Virtualbox4.2.8安装RedHat Enterprise Linux 6.4
  17. 数据分析师、大数据开发、Hadoop开发工程师、数据挖掘、算法工程师的工资薪水到底怎么样?
  18. .net的反射技术(2)深究及 性能比较
  19. JWT springboot集成jWT
  20. Win10蓝牙突然消失的解决办法

热门文章

  1. svn working copy locked
  2. 3大主流NoSQL数据库性能对比测试报告
  3. linux rpm 安装包制作
  4. Android移动端音视频的快速开发教程(十)
  5. (论坛答疑点滴)为什么设置了DropDownList的AutoPostBack=True还是不能触发SelectedIndexChanged事件?...
  6. 阿里架构师,讲述分布式架构云平台解决方案(附学习路线)...
  7. Leetcode-探索 | 加一
  8. python 通过paramiko模块批量执行ssh命令
  9. 车辆管理系统之继续自己的任务(四)
  10. OSChina 周三乱弹 —— 程序员火灾逃生指南