码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 顺序读写函数的介绍:fscanf & fprintf


    目录

    函数介绍:

    fprintf:

    将结构体变量s的成员列表内容写入文件中:

    文件效果:已经进行了格式化,3.140000是最明显的效果,因为float需要补齐0来补充精度

    和printf的对比:

     不同之处: 

    和printf的效果对比:

    屏幕效果一样:

     fscanf:

    从文件中读取数据,并将数据依次按照格式化分配到构体成员中,并使用printf打印:

    文件内容:

    代码操作: 

    读取文件效果后的打印效果:从文件中读取了数据内容并且进行了printf打印

    注意:

    打印效果: 

    和scanf的对比:

    不同之处: 

    和scanf对比效果: 

     小总结:

    附赠内容:

     sscanf & sprintf:

    sprintf:

     结果展示:

     内部展示:

    sscanf:

     结果:


    函数介绍:

    fprintf:

    将结构体变量s的成员列表内容写入文件中:

    1. struct S
    2. {
    3. int n;
    4. float f;
    5. char arr[20];
    6. }
    7. int main()
    8. {
    9. struct S s = {100,3.14f,"zhangsan"};
    10. FILE* pf = fopen("data.txt","w");
    11. if (pf == NULL)
    12. { perror("fopen");
    13. return 1;
    14. }
    15. fprintf(pf,"%d %f %s", s .n , s .f , s.arr) ;
    16. return 0;
    17. }

    文件效果:已经进行了格式化,3.140000是最明显的效果,因为float需要补齐0来补充精度

    和printf的对比:

     不同之处: 
    • printf从标准流中输出数据,比如在屏幕中写入数据内容。
    • fprintf从指定流中输出数据,比如在指定的文件中写入数据内容。

    和printf的效果对比:

    printf("%d %f %s", s .n , s .f , s.arr) ;

    写入结构体变量中的成员内容。 

    fprintf(stdout,"%d %f %s", s .n , s .f , s.arr) ;

    将结构体变量中的成员内容写入屏幕中。 

    屏幕效果一样:

     fscanf:

    从文件中读取数据,并将数据依次按照格式化分配到构体成员中,并使用printf打印:

    文件内容:

    代码操作: 
    1. struct s
    2. {
    3. int n;
    4. float f;
    5. char arr[20];
    6. }
    7. int main()
    8. {
    9. struct S s = {0}:
    10. FILE* pf = fopen("data.txt","r");
    11. if (pf == NULL)
    12. {
    13. perror("fopen");
    14. return 1;
    15. }
    16. fscanf(pf."%d %f %s",&(s .n).&(s.f),s.arr);
    17. printf("%d %f %s",&(s .n).&(s.f),s.arr)
    18. return 0;
    19. }
    读取文件效果后的打印效果:从文件中读取了数据内容并且进行了printf打印
    注意:

    这里的结构体变量s一开始进行了初始化为0,所以单纯使用printf是打印不出来数据的,所以这里printf打印的数据是fscanf读取而来的,而printf打印了fscanf读取的内容。

    打印效果: 

    和scanf的对比:

    不同之处: 
    • fscanf是从指定流中拿取数据,比如只读取文件中的内容。
    • scanf是从标准流中拿取数据,比如可以从键盘中或者其他变量中拿取数据。

    和scanf对比效果: 

    1. scanf("%d %f %s", &(s .n), &(s .f), s .arr);
    2. fscanf(pf."%d %f %s",&(s .n), &(s.f),s.arr);

     小总结:

     

    附赠内容:

     

     sscanf & sprintf:

    sprintf:

    把格式化的数据变成字符串。

    sprintf(存放字符串的空间起始地址,格式化的格式,需要变成字符的数据变量)

    将结构体变量s的成员进行赋值,而后又创建一个数组空间,将结构体变量的成员使用sprintf将成员变量变成一个字符串。

     结果展示:

     内部展示:

     已经变成字符串了。

    sscanf:

    从字符中读取格式化的数据。

    sscanf(存放字符串的空间起始地址,格式化的格式,需要格式化的数据地址)

    在之前sprintf的代码基础上,在设立一个结构体,将原先已经变成字符串的数据,从arr这个数组空间中拿出,并以此放入结构体变量t的成员中,进行格式化数据,最后进行打印。

     结果:

    • 前者是结构体变量s的成员被sprintf变成字符串后,放在arr数组空间的内部。
    • 后者是arr中的字符串被sscanf从数组空间中拿出,重新变成格式化数据的结构体变量t的成员。 
  • 相关阅读:
    UiPath实战(09) - 不同Windows用户下的文件夹获取问题
    QT学习_15_线程间通信以及注意事项
    新手一定要看的嵌入式学习方法
    作业fgets计算行数和大小
    EPLAN-P8软件技术分享文章
    Java基础 | Stream流原理与用法总结
    / 将 Month 转换为整数:int monthAsInt = static_cast<int>(month);“static_cast”是干啥的?
    持续集成持续交付
    mysql 统计当天,当周,当月,当年和总量的SQL语句如何写?
    Pycharm中添加Python库指南
  • 原文地址:https://blog.csdn.net/2301_76445610/article/details/133281017
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号