fscanf函数是C语言的文件格式读取函数的方法之一,它使用空格、制表符和回车来分割不同的单词,这样可以让我们使用起来更方便,下面就让爱站技术频道小编带你来学习详解C语言中fgets和fscanf区别吧!

详解C语言中fgets和fscanf区别

一、作用上的大概区别:

①fgets:从文件中读取一行数据存入缓冲区(fgets遇到回车才会结束,不对空格和回车做任何转换就录入到缓冲区,结束后再往缓冲区写多一个\0,所以它是读一行数据)

②fscanf:从文件中读取一段数据存入缓冲区(fscanf遇到空格或回车就结束,它会把空格或回车转换为\0,所以它是读一小段数据)

二、举个例子:把a.txt文件中的内容复制到b.txt。

a.txt中的内容(第一行中“我爱你小白”和“开玩笑”中间有个空格,每行的最后都有回车):

我爱你小白 开玩笑

哈哈

开玩笑

1、使用fgets读取a.txt文件并写入到b.txt的程序片段:

FILE *f1 = fopen("a.txt", "r");//只读方式打开a.txt,该文件必须存在

FILE *f2 = fopen("b.txt", "w");//以只写方式打开b.txt,该文件可以不存在

if (f1 == NULL)//如果文件不存在,直接结束

{

return 0;

}

char buf[1024] = { 0 };//缓冲区

while (!feof(f1))

{

memset(buf, 0, sizeof(buf));//清空缓冲区

fgets(buf, sizeof(buf), f1);//从文件中读取一行数据存入缓冲区(fgets遇到回车才会结束,不对空格和回车做任何转换就录入到缓冲区,结束后再往缓冲区写多一个\0,所以它是读一行数据)

fputs(buf, f2);

}

fclose(f1);//注意最后关闭文件

fclose(f2);//注意最后关闭文件

运行结果:

2、使用fscanf读取a.txt文件并写入到b.txt的程序片段:

FILE *f1 = fopen("a.txt", "r");//只读方式打开a.txt

FILE *f2 = fopen("b.txt", "w");//以只写方式打开b.txt,该文件可以不存在

if (f1 == NULL)//如果文件不存在,直接结束

{

return 0;

}

char buf[1024] = { 0 };//缓冲区

while (!feof(f1))

{

memset(buf, 0, sizeof(buf));//清空缓冲区

fscanf(f1, "%s", buf);//从文件中读取一段数据存入缓冲区(fscanf遇到空格或回车就结束,它会把空格或回车转换为\0,所以它是读一小段数据)

fputs(buf, f2);

}

fclose(f1);//注意最后关闭文件

fclose(f2);//注意最后关闭文件

运行结果:

三、结论

1、fgets遇到“空格”就跟遇到平常的字符一样读取,遇到“回车”则结束本次读取,最后往缓冲区(char *buf[])的最后加多一个"\0"表示本次读取一行结束。

2、fscanf不论遇到“空格”还是“回车”,都当作'\0'读取到缓冲区中(char *buf[]),并结束本次读取。

上述就是爱站技术频道小编介绍的详解C语言中fgets和fscanf区别,大家了解清楚了吗?爱站技术频道将在各个频道分享各种经验,希望大家会喜欢。

c语言中的fscanf是啥意思,详解C语言中fgets和fscanf区别相关推荐

  1. python语言中with as的用法使用详解

    本篇文章主要介绍了python语言中with as的用法使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 With语句是什么? 有一些任务,可能事先需要设置,事后做 ...

  2. c语言常量的正确表示const,C语言中的const和free用法详解

    注意:C语言中的const和C++中的const是有区别的,而且在使用VS编译测试的时候.如果是C的话,请一定要建立一个后缀为C的文件,不要是CPP的文件.因为,两个编译器会有差别的. 一.C语言中的 ...

  3. php seekdir,C++_详解C语言中telldir()函数和seekdir()函数的用法,C语言telldir()函数:取得目录流 - phpStudy...

    详解C语言中telldir()函数和seekdir()函数的用法 C语言telldir()函数:取得目录流的读取位置头文件: #include 定义函数: off_t telldir(DIR *dir ...

  4. c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别

    详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...

  5. c语言while函数作用,详解C语言中的while语句

    什么是C语言的while语句?它的作用是什么呢?估计很多初学者对此都是一知半解.下面课课家笔者就为大家详细解释C语言中的while语句的含义和作用. 首先笔者先给大家介绍C语言中的共有的三大常用的程序 ...

  6. C语言中定义常量的关键字是什么,C++_详解C语言中const关键字的用法,关键字const用来定义常量,如 - phpStudy...

    详解C语言中const关键字的用法 关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const ...

  7. c语言中sam的用法,samtoos用法详解.pdf

    samtoos用法详解 冠 缠 井 缉 滩 赂 框 挎 韧 击 微 耀 镀 稚 惺 那 纤 芳 刚 叛 弓 拍 床 衣 倾 讳 熟 佣 嘻 吸 敷 还 失 馒 霜 磨 臻 塑 梦 坐 炮 要 鹅 妄 ...

  8. 详解C语言中sizeof的使用

    目录 一.sizeof是什么? 二.sizeof的使用 三. 在字符串数组中sizeof与strlen的区别 四.总结 一.sizeof是什么? 在 C /C++语言中,sizeof() 是一个判断数 ...

  9. 在c语言中如何将char型变量转换为int型变量,详解C语言中的char数据类型及其与int类型的转换...

    C语言中的char变量 char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed.虽然char在标准中是unsig ...

最新文章

  1. 汪卫华院士:无序中找有序 复杂中寻规律
  2. 服务器共享文件夹 关闭打开文件,dos命令net file图文教程,显示打开共享文件名关闭删除文件锁...
  3. 如何在设计时公开复合控件内的子控件
  4. mysql进入表格_mysql如何进入数据库查看所有表
  5. django-无刷新ajax请求的试验
  6. [GCJ] Qualification Round 2017
  7. UnityShader28:噪声纹理
  8. java JsonNode 遍历方式
  9. 万年历c语言程序微博,简易的万年历程序C语言
  10. 中文TTS文字转语言合成模块
  11. 深度学习教程(5) | 深度学习的实用层面(吴恩达·完整版)
  12. 各代iphone尺寸_iPhone每一代的屏幕尺寸比例是多少?
  13. TensorFlow 系列案例(2):自然语言处理-TensorFlow + Word2Vec
  14. 蓝牙sbc怎么解决_从指标看蓝牙A2DP编码(SBC,AAC,APTX)
  15. 【软件测试】POST请求包含哪些参数
  16. 小括号与花括号小括号与花括号
  17. 我的梦想就是不工作,有什么错?
  18. 基于HTML美中华传统文化题材网页项目的设计与实现 (纯HTML+CSS制作中国茶文化网站)
  19. A `Concatenate` layer requires inputs with matching shapes except for the concat axis.
  20. H5 捕鱼游戏搭建教程

热门文章

  1. jmeter监控服务器资源
  2. Css3 常见技术面试题(二)
  3. Ubuntu 安装好用的驴子
  4. 太赞了!别再说 不能用Python开发美观的GUI程序了!
  5. 小奎因的 PYTHON 项目部署与调度直播分享来了
  6. MATLAB中figure的问题
  7. java实现英尺转换为米
  8. Flask一对多学生课程表项目搭建
  9. 智云SMOOTH-X2 云台的使用方法
  10. 未来二维码发展趋势:从“吃穿住行”到“生死救援”的华丽转身