【C语法学习】13 - fscanf()函数

文章目录

  • 1 函数原型
  • 2 参数
  • 3 返回值
  • 4 比较
  • 5 示例
    • 5.1 示例1
    • 5.2 示例2

1 函数原型

fscanf():从指定流stream读取格式化输入,函数原型如下:

int fscanf(FILE *stream, const char *format, ...)

2 参数

fscanf()函数参数包括三部分:

  1. 参数stream是一个指向FILE类型结构的指针;stream指定了fscanf()函数要读取的流,可以是文件流,也可以是标准输入流;当是文件流时,stream等于fopen()函数的返回值;当是标准输入流时,stream等于stdin;
  2. format :格式字符串,与scanf()函数一致;
  3. … : 参数列表,与scanf()函数一致。

3 返回值

fscanf()函数返回值类型为int型:

  1. 读文件成功,则返回成功读取的项数;
  2. 读文件失败,则返回EOF。

C语言标准描述如下:

1. Each of these functions returns the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. A return value of 0 indicates that no fields were assigned. 
2. If an error occurs, or if the end of the file stream is reached before the first conversion, the return value is EOF for fscanf or WEOF for fwscanf.

4 比较

fscanf()函数和scanf()函数的工作原理类似,差异如下:

  1. fscanf()函数从指定流stream中获取输入;
  2. scanf()函数从标准输入流stdin中获取输入;
  3. 将fscanf()函数的参数stream指定为stdin,则fscanf()函数的功能和scanf()函数的功能完全相同。

5 示例

5.1 示例1

使用fscanf()函数读文件并打印,示例代码如下所示:

int main()
{float f1 = 0.0;float f2 = 0.0;float f3 = 0.0;float f4 = 0.0;float f5 = 0.0;FILE* fp;if ((fp = fopen("1.txt", "r")) == NULL){printf("Failed to open file\n");exit(1);}int rt = fscanf(fp, "%f %f %f %f %f", &f1, &f2, &f3, &f4, &f5);printf("f1 = %f\n", f1);printf("f2 = %f\n", f2);printf("f3 = %f\n", f3);printf("f4 = %f\n", f4);printf("f5 = %f\n", f5);printf("rt = %d\n", rt);return 0;
}

文件1.txt内容如下图所示:

在这里插入图片描述

代码运行结果如下图所示:

在这里插入图片描述

代码及运行结果分析:

  1. fscanf()函数从1.txt文件中读取浮点数,并赋值给float型变量f1、f2、f3、f4、f5;
  2. fscanf()函数返回值为rt=5表示成功读取并赋值的项的数量。

5.2 示例2

使用fscanf()函数读取空文件,代码运行结果如下图所示:

在这里插入图片描述

代码及运行结果分析:

  1. 因为文件为空,所scanf()第一次读取时首先读到文件结束符,所以返回EOF=-1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161957.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VR全景技术在文化展示与传播中有哪些应用?

引言: 随着科技的不断进步,虚拟现实(VR)全景技术已经成为文化展示与传播领域的一项重要工具。那么VR全景技术是如何改变文化展示与传播方式,VR全景技术又如何推动文化的传承和普及呢? 一.VR技术…

【MongoDB】MongoExport如何过滤数据导出

问题 使用MongoDB处理导出数据时,想增加数据过滤操作。 例如:导出所有isGirl为true的所有数据。 分析 在mongoexport说明文档中找到了query字段和queryFile字段,用来进行数据查询匹配导出。 query字段 后面直接跟 json格式数据。 queryF…

GPT技术的崛起:改变生活与挑战未来

GPT的广泛使用引发了许多关于其影响的讨论,包括可能对就业和互联网公司的存活造成挑战。在这篇博客中,我们将探讨这些问题,并分享我们自己在日常生活中如何使用GPT的经验。 1 GPT技术的广泛应用 GPT,或者通用预训练模型&#x…

NOIP2005提高组第二轮T3:传纸条

题目链接 NOIP2005提高组第二轮T3:传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 m m m 行 n n n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端…

什么是数据可视化,为什么数据可视化很重要?

数据可视化是数据的图形表示,可以帮助人们更轻松地理解和解释复杂的信息。它涉及创建数据的视觉表示,例如图表、图形、地图和其他视觉元素,以传达数据中的见解、模式和趋势。数据可视化是将原始数据转化为可操作知识的关键工具。 以下是数据…

实用篇-MQ消息队列

一、初识MQ 通讯分为同步通讯和异步通讯,同步通讯就比如我们日常生活中的打电话,看直播,能够得到及时的反馈。而异步通讯则类似于聊天软件聊天,不需要建立实时的连接,并且可以进行建立多个业务一起异步执行 1. 同步通…

Python之函数

函数介绍 函数:是组织好的,可重复使用的,用来实现特定功能的代码段。 就比如我们使用过的:input()、print()、str()、int()、len()等都是Python的内置函数 函数的定义 函数的调用 函数使用时的注意事项: ① 参数如…

AI:62-基于深度学习的人体CT影像肺癌的识别与分类

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

Firefox 119 正式发布

Firefox 119 已正式发布。新版本除了修复 Bug 之外,还增强了 Firefox View 功能、支持在 PDF 文档中插入图片,以及引入 Encrypted Client Hello (ECH) 以增强隐私保护等。 主要变化 改进 Firefox View:用户可以在该页面查看所有窗口打开的标…

动态壁纸软件Live Wallpaper HD mac中文版功能特色

Live Wallpaper HD mac提供了一系列美丽的主题场景,将为您的桌面增添活力。从城市景观、日落到遥远的星系,每个屏幕都有特别的触感,可以定制您的天气小部件和时钟样式,并使用您喜爱的图片创建您自己的个性化壁纸。 Living Wallpap…

这款AI-3D模型实现了无数人的建模梦

hi,同学们,本期是第25期AI生产力工具教程 别说各位,连我也不敢信,现在制作3D模型比泡杯奶茶的时间还要快! 最近发现了一个天花板级的图片生成3D模型的AI工具——Artefacts.Ai,喂1张图片,就能创…

【漏洞复现】Aapache_Tomcat_AJP协议_文件包含漏洞(CVE-2020-1938)

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证 说明内容漏洞编号CVE-2020-1938漏洞名称Aapache_Tomcat_AJP文件包含漏洞漏洞评级高…