浅谈函数 fscanf/sscanf 和 fprintf/sprintf

2024-04-15 11:20

本文主要是介绍浅谈函数 fscanf/sscanf 和 fprintf/sprintf,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一,fprintf 的介绍和使用
    • 1. 函数介绍
    • 2. 函数使用
  • 二,fscanf 的介绍和使用
    • 1. 函数介绍
    • 2. 函数使用
  • 三,sprintf 的介绍和使用
    • 1. 函数介绍
    • 2. 函数使用
  • 四,sscanf 的介绍和使用
    • 1,函数介绍
    • 2,函数使用
  • 五,总结

一,fprintf 的介绍和使用

1. 函数介绍

1.1 功能:把数据以格式化的形式写入指定的输出流上

1.2 参数:该函数的参数与 printf 函数的参数类似,只是多了一个文件流
在这里插入图片描述

2. 函数使用

此时把数据以格式化的形式写入指定的输出流上


#define _CRT_SECURE_NO_WARNINGS #include <stdio.h>struct S
{char name[20];int age;float score;};int main()
{struct S s = { "张三",20,65.5f };//想把s中的数据存写在文件test.txt中FILE* pf = fopen("test.txt", "w");if (pf == NULL){perror("fopen");return 1;}//写文件 -- 是以文本的形式写进去的fprintf(pf, "%s %d %f", s.name, s.age, s.score);fclose(pf);pf = NULL;return 0;
}

结果如下:

在这里插入图片描述

二,fscanf 的介绍和使用

1. 函数介绍

1.1 功能:从指定的输入流上读取格式化数据

1.2 参数:该函数的参数与 scanf 函数的参数类似,只是多了一个文件流
在这里插入图片描述

2. 函数使用

此时是从文件 test.txt 中读取数据


struct S
{char name[20];int age;float score;};int main()
{struct S s = { 0 };//想从test.txt文件中把数据放入sFILE* pf = fopen("test.txt", "r");if (pf == NULL){perror("fopen");return 1;}//读文件fscanf(pf, "%s %d %f", s.name, &(s.age), &(s.score));//想打印在屏幕上看看printf("%s %d %f", s.name, s.age, s.score);fclose(pf);pf = NULL;return 0;
}

结果如下:

在这里插入图片描述

三,sprintf 的介绍和使用

1. 函数介绍

1.1 功能:把格式化的数据写入到字符串中。其实就是把格式化的数据转化成字符串了。

1.2 参数:该函数的参数与 printf 函数的参数类似,只是多了一个字符串指针
在这里插入图片描述

2. 函数使用

此时把结构体中格式化的数据转化成字符串,再直接以字符串的形式打印。


struct S
{char name[20];int age;float score;};int main()
{char buf[200] = { 0 };struct S s = { "张三",20,65.5f };//把结构体中格式化的数据转化成字符串sprintf(buf, "%s %d %f", s.name, s.age, s.score);//直接以字符串的形式打印printf("%s\n", buf);return 0;
}

输出结果如下:

在这里插入图片描述

四,sscanf 的介绍和使用

1,函数介绍

1.1 功能:在字符串中读取格式化的数据。

1.2 参数:该函数的参数与 scanf 函数的参数类似,只是多了一个字符串指针

在这里插入图片描述

2,函数使用

再把 buf 字符串中的数据读入结构体 t 中。再打印结构体t中的数据


struct S
{char name[20];int age;float score;};int main()
{char buf[200] = { 0 };struct S s = { "张三",20,65.5f };//把结构体中格式化的数据转化成字符串sprintf(buf, "%s %d %f", s.name, s.age, s.score);//直接以字符串的形式打印printf("%s\n", buf);struct S t = { 0 };//把buf中的字符串转化成结构体t中格式化的数据sscanf(buf, "%s %d %f", t.name, &(t.age), &(t.score));//打印结构体t中的数据printf("%s %d %f\n", t.name, t.age, t.score);return 0;
}

输出结果如下:

在这里插入图片描述

五,总结

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/70c5dd2b9d2d41e5a1cb8cde1bc86bad.png

这篇关于浅谈函数 fscanf/sscanf 和 fprintf/sprintf的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/905676

相关文章

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

hdu 2093 考试排名(sscanf)

模拟题。 直接从教程里拉解析。 因为表格里的数据格式不统一。有时候有"()",有时候又没有。而它也不会给我们提示。 这种情况下,就只能它它们统一看作字符串来处理了。现在就请出我们的主角sscanf()! sscanf 语法: #include int sscanf( const char *buffer, const char *format, ... ); 函数sscanf()和

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据

Unity3D 运动之Move函数和translate

CharacterController.Move 移动 function Move (motion : Vector3) : CollisionFlags Description描述 A more complex move function taking absolute movement deltas. 一个更加复杂的运动函数,每次都绝对运动。 Attempts to

浅谈PHP5中垃圾回收算法(Garbage Collection)的演化

前言 PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写PHP或Zend扩展除外),这就意味着PHP本身实现了垃圾回收机制(Garbage Collection)。现在如果去PHP官方网站(php.net)可以看到,目前PHP5的两个分支版本PHP5.2和PHP5.3是分别更新的,这是因为许多项目仍然使用5.2版本的PHP,而5.3版本对5.2并不是完

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^