C语言scanf( ) 函数、fprintf( ) 函数与 scanf( ) 函数和printf( ) 函数有什么不同?

一、问题

        fscanf( ) 函数、fprintf( ) 函数与 printf( ) 函数、scanf( ) 函数的作⽤相似,都是格式化读写函 数,那么这两个读写函数有什么不同呢?

二、解答

        两者的区别就在于前⾯的字符“f”,即 fscanfQ函数和 fprintfD函数的读写对象是磁盘⽂件(file),⽽不是键盘和显示器。

        scanf( ) 函数是通过键盘输⼊数据,使⽤ scanf( ) 函数读取键盘上的输⼊信息:⽽ printf( ) 函数是将信息输出到终端设备,即显示器上。 fscanf( ) 函数是读取指定磁盘⽂件中数据信息;⽽ fprintf( ) 是向指定的磁盘⽂件中输出信息,显示在磁盘⽂件上。 通过下⾯的例⼦,理解这四个函数的功能。代码如下。

#include <stdio.h>
int main()
{FILE *fp;long ln;float f1;char str[128];char str1[128];fp = fopen("time.txt", "w+");fprintf(fp, "%s %ld %f", "Hello", 1100, 12.34);fseek(fp, 0L, SEEK_SET);fscanf(fp, "%s", str);fscanf(fp, "%ld", &ln);fscanf(fp, "%f", &f1);printf("%s\t%ld\t%f\n", str, ln, f1);fclose(fp);scanf("%s", str1);printf("%s\n", str1);
}

        此函数的功能是创建并打开⼀个磁盘⽂件 time.txt。通过 fprintf( ) 函数向此磁盘⽂件中写⼊数据,有字符串形式的 hello,有⻓整型形式的 1100,有浮点型的 12.34。然后使⽤ fseek( ) 函数设置⽂件指示器的位置,通过 fscanf( ) 函数读取此字符串,分别读取这⼏种类型的数据,然后将这些数据输出到终端显示器上。为了在此程序中也能体现 scanf( ) 函数从键盘输⼊信息的功能,特意在程序的结尾处使⽤此函数读取信息,然后通过 printf( ) 函数再将此信息输出。

        程序的运⾏结果如下所示。

Hello   1100    12.340000
congratulation
congratulation

        写到⽂本⽂件中的内容如下所示。

三、总结

        这四个格式化读写函数的应⽤都写到了上述程序中,fscanf( ) 函数和 fprintf( ) 函数每次只能读写⼀个结构的元素,因此在读取磁盘⽂件中数据时,使⽤了三个 fscanf( ) 语句,分别读取三种不同数据类型的数据信息。

 

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

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

相关文章

【Java基础】OkHttp 超时设置详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

AddressSanitizer理论及实践:heap-use-after-free、free on not malloc()-ed address

AddressSanity&#xff1a;A Fast Address Sanity Checker 摘要 对于C和C 等编程语言&#xff0c;包括缓冲区溢出和堆内存的释放后重用等内存访问错误仍然是一个严重的问题。存在许多内存错误检测器&#xff0c;但大多数检测器要么运行缓慢&#xff0c;要么检测到的错误类型有…

Web前端与REST API:深度解析与实战指南

Web前端与REST API&#xff1a;深度解析与实战指南 在Web开发领域&#xff0c;前端与后端之间的数据交互至关重要&#xff0c;而REST API作为连接两者的桥梁&#xff0c;扮演着不可或缺的角色。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;深入剖析Web前端与R…

Java基础——数组Array

系列文章目录 文章目录 系列文章目录前言一、数组基本概念二、一维数组三、数组的模型四、数组对象的创建五、元素为引用数据类型的数组 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网…

0104__Linux 中 nm 命令简介

Linux 中 nm 命令简介_linux nm-CSDN博客

c 宏应用举例

1.概要 #include <iostream> //变量可以直接使用 #define fun() a 100; //用变量计算可以 #define fun2(a) a*2; //用变量替换可以 #define fun3(a) d[a] a; //##链接的作用&#xff0c;一般用于链接变量名 #define fun4(type,name) type name##_s 4; //#的作用是转换…

leetcode 所有可能的路径(图的遍历)

leetcode 链接&#xff1a; 所有可能的路径 1 图的基本概念 1.1 有向图和无向图 左边是有向图&#xff0c;右边是无向图。对于无向图来说&#xff0c;图中的边没有方向&#xff0c;两个节点之间只可能存在一条边&#xff0c;比如 0 和 1 之间的边&#xff0c;因为是无向图&am…

【Vue】——组件的注册与引用

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…

中国电子学会(CEIT)2023年12月真题C语言软件编程等级考试三级(含详细解析答案)

中国电子学会(CEIT)考评中心历届真题(含解析答案) C语言软件编程等级考试三级 2023年12月 编程题五道 总分:100分一、因子问题(20分) 任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。 时间限制: 10000ms 内存限制: 65536kb 输入 包括两个整…

Go微服务: 关于消息队列的选择和分类以及使用场景

消息队列概述 在分布式系统和微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是一个核心组件&#xff0c;用于在不同的应用程序或服务之间异步传递消息在 Go 语言中&#xff0c;有多种实现消息队列的方式&#xff0c;包括使用开源的消息队列服务&…

redis学习路线

待更新… 一、nosql讲解 1. 为什么要用nosql&#xff1f; 用户的个人信息&#xff0c;社交网络&#xff0c;地理位置&#xff0c;自己产生的数据&#xff0c;日志等等爆发式增长&#xff01;传统的关系型数据库已无法满足这些数据处理的要求&#xff0c;这时我们就需要使用N…

零基础入门学用Arduino 第一部分(三)

重要的内容写在前面&#xff1a; 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后&#xff0c;整体感觉是很好的&#xff0c;如果有条件的可以先学习一些相关课程&#xff0c;学起来会更加轻松&#xff0c;相关课程有数字电路…

KT1404A语音芯片USB连电脑,win7正常识别WIN10无法识别USB设备

一、简介 KT1404A语音芯片画的板子&#xff0c;USB连接电脑&#xff0c;win7可以正常识别到U盘&#xff0c;WIN10提示无法识别USB设备&#xff08;获取设备描述符失败&#xff09;&#xff0c;这是什么问题 问题 首先&#xff0c;这款芯片已经出货非常非常多了&#xff0c;所…

Python基础操作之模块 -- pandas之groupby函数

groupby函数是pandas库中一个非常强大的功能&#xff0c;它允许你根据一个或多个列的值对DataFrame或Series进行分组&#xff0c;并对每个组执行各种聚合操作。 目录 示例详解 1. 导入必要的库和创建DataFrame 2. 使用groupby函数进行分组 3. 遍历分组并查看内容 4. 对分…

【Java】Java18的新特性

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

【Docker】上海交通大学开源镜像站服务变更:Docker 用户需迅速行动

近日&#xff0c;上海交通大学开源镜像站宣布了一个重大变更&#xff0c;对国内Docker用户来说&#xff0c;这一消息无疑具有紧迫性。 镜像站服务的变更 上海交通大学开源镜像站一直是国内Docker用户的重要资源&#xff0c;它提供了快速下载DockerHub仓库镜像的服务。然而&a…

【代码随想录算法训练营第37期 第三十一天 | LeetCode455.分发饼干、376. 摆动序列、53. 最大子序和】

代码随想录算法训练营第37期 第三十一天 | LeetCode455.分发饼干、376. 摆动序列、53. 最大子序和 一、455.分发饼干 解题代码C&#xff1a; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end(…

react学习-高阶组件

1.简介 react高阶组件是一个函数&#xff0c;接收一个组件作为参数&#xff0c;返回一个新的组件&#xff0c;可以用来进行组件封装&#xff0c;将一些公共逻辑提取到高阶组件内部。 2.基本实现 以下案例为利用高阶组件来增强props import React, { Component } from "re…

浙江大学蒋明凯研究员《Nature》正刊最新成果!揭示生态系统磷循环响应大气二氧化碳浓度升高关键机制

随着大气二氧化碳浓度的升高&#xff0c;陆地生态系统固存额外碳汇的能力取决于土壤养分的可利用性。前期的研究证据表明&#xff0c;在土壤低磷环境下&#xff0c;大气二氧化碳浓度的升高可以提升成熟森林的光合速率&#xff0c;但是没有产生额外生物量固碳。热带和亚热带森林…

Http File Server 2.0(HFS)使用说明

Http File Server 2.0&#xff08;HFS&#xff09;是一个专为个人用户设计的HTTP文件服务器软件。以下是关于Http File Server 2.0的清晰介绍&#xff0c;包括其特点、安装和使用方法&#xff1a; 1. 软件特点 专为个人用户设计&#xff1a;提供方便的档案传输系统&#xff0…