“在C语言中进行格式化读写文件”按照字面意思通常大家都会理解为将读写文件进行格式化的操作,那么到底我们是不是真的将读写文件进行格式化的操作呢?下面课课家笔者就为大家简单介绍C语言中格式化读写文件的概念和具体的操作编写方法。

首先笔者先给大家介绍fscanf()和fprintf()函数的概念。fscanf()和fprintf()函数与前面使用的scanf()和printf()功能相似,它们都是格式化读写函数,具体的区别在于fscanf()和fprintf()的读写对象不是键盘和显示器而是磁盘文件。

fscanf()和fprintf()函数的原型为:

intfscanf(FILE*fp,char*format,...);

intfprintf(FILE*fp,char*format,...);

在这里fp为文件指针,format为格式控制字符串,...表示参数列表。与scanf()和printf()相比,它们仅仅多了一个fp参数。具体比如:

FILE*fp;

inti,j;

char*str,ch;

fscanf(fp,"%d%s",&i,str);

fprintf(fp,"%d%c",j,ch);

fprintf()返回成功写入的字符的个数,失败则返回负数。fscanf()返回参数列表中被成功赋值的参数个数。

下面笔者用fscanf和fprintf函数来完成对学生信息的读写,具体代码如下:

#include

#defineN2

structstu{

charname[10];

intnum;

intage;

floatscore;

}boya[N],boyb[N],*pa,*pb;

intmain(){

FILE*fp;

inti;

pa=boya;

pb=boyb;

if((fp=fopen("D:\\\\demo.txt","wt+"))==NULL){

printf("Cannotopenfile,pressanykeyexit!");

getch();

exit(1);

}

//从键盘读入数据,保存到boya

printf("Inputdata:\\n");

for(i=0;i

scanf("%s%d%d%f",pa->name,&pa->num,&pa->age,&pa->score);

}

pa=boya;

//将boya中的数据写入到文件

for(i=0;i

fprintf(fp,"%s%d%d%f\\n",pa->name,pa->num,pa->age,pa->score);

}

//重置文件指针

rewind(fp);

//从文件中读取数据,保存到boyb

for(i=0;i

fscanf(fp,"%s%d%d%f\\n",pb->name,&pb->num,&pb->age,&pb->score);

}

pb=boyb;

//将boyb中的数据输出到显示器

for(i=0;i

printf("%s%d%d%f\\n",pb->name,pb->num,pb->age,pb->score);

}

fclose(fp);

return0;

}

输出结果:

Inputdata:

Tom21590.5↙

Hua11499↙

Tom21590.500000

Hua11499.000000

此时我们打开D:\\\\demo.txt,可以发现文件的内容是可以阅读且格式比较清晰。我们通过用fprintf()和fscanf()函数,在读写配置文件、日志文件时会比较方便,不但程序能够识别,而且用户也可以看懂并手动修改。另外如果我们将fp设置为stdin,那么fscanf()函数将会从键盘读取数据,与scanf的作用相同;设置为stdout,那么fprintf()函数将会向显示器输出内容,与printf的作用相同。具体比如:

#include

intmain(){

inta,b,sum;

fprintf(stdout,"Inputtwonumbers:");

fscanf(stdin,"%d%d",&a,&b);

sum=a+b;

fprintf(stdout,"sum=%d\\n",sum);

return0;

}

输出结果:

Inputtwonumbers:1020↙

sum=30

本次利用C语言格式化读写文件的讲解到此暂告一段落,如果以后有什么内容继续进行补充或者修改的话,笔者会在此进行相关的内容补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充,最后希望本次的教程对大家学习C语言能够起到一定的帮助作用!

c语言格式化写入文件大小,利用C语言格式化读写文件相关推荐

  1. 【SQL注入-13】利用SQL注入漏洞读写文件案例

    目录 1 读写文件的前提条件 1.1 secure-file-priv参数 1.1.1 作用 1.1.2 secure-file-priv参数值的查看 1.1.2.1 远程查看 1.1.2.2 本地查 ...

  2. 格式化字符串漏洞利用 二、格式化函数

    二.格式化函数 原文:Exploiting Format String Vulnerabilities 作者:scut@team-teso.net 译者:飞龙 日期:2001.9.1 版本:v1.2 ...

  3. 格式化字符串漏洞利用 三、格式化字符串漏洞

    三.格式化字符串漏洞 原文:Exploiting Format String Vulnerabilities 作者:scut@team-teso.net 译者:飞龙 日期:2001.9.1 版本:v1 ...

  4. php 目录文件大小,利用php怎么对目录文件的大小进行统计

    利用php怎么对目录文件的大小进行统计 发布时间:2020-12-24 16:31:18 来源:亿速云 阅读:87 作者:Leah 本篇文章给大家分享的是有关利用php怎么对目录文件的大小进行统计,小 ...

  5. c语言读取png文件大小,求助: C语言- 利用libpng读取png大小,并转换为jpg类型图片...

    大家好, 最近研究C语言图像处理这方面遇到一个难题,详情如下: 目标: 将png类型图片的信息读入内存,提取所需要的数据并保存,然后转换为如jpg等其它图片格式. 1. libpng库已经装好,通过m ...

  6. c语言怎么写入换行字符,C语言中的换行符是什么:要么 ?

    C中的换行符是什么? 我知道不同的操作系统具有不同的行尾字符,但是它们被转换为C换行符. 那是什么角色? .在读取或写入文本模式文件或stdin / stdout等时,必须使用,C会为您处理翻译.当您 ...

  7. c语言写字符个数,利用c语言写出并判断字符的个数

    /* 题目1: 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 我的思路: 首先利用if语句写出是什么字符,然后,再用其统计个数,最后在写上到什么时候截止 定义四个变量 . */ ...

  8. C 语言还值得学习吗?C 语言会过时吗?C 语言解惑

    C 语言还值得学吗? 答案是肯定的. 第一,学习C有助于更好的理解C++,Java,C#,Perl以及其他基于C的特性的语言.第一开始就学习其他语言的程序员往往不能很好的掌握继承自C语言的基本特性. ...

  9. 利用C语言将数字、字符等数据写入、输出到文本文件中

    最近在调试程序,想把过程中需要查看的数据输出到文件中,因此将简单的小方法分享一下 1.首先需要声明一个文件指针变量 FILE* fp; 2.接下来需要对这个指针变量进行初始化 fp = fopen(& ...

最新文章

  1. OpenCV学习(19) 细化算法(7)
  2. [深度学习基础] 5. 实现细节
  3. LeetCode Algorithm 274. H 指数
  4. MATLAB库函数resample(重新采样序列)的C语言实现
  5. css 背景色渐变 background linear-gradient
  6. PML调用PDMS内核命令研究
  7. 永久删除计算机文件怎么操作步骤,如何彻底删除电脑中的文件 永久删除文件方法...
  8. 网络入门—家庭组网介绍基本网络知识
  9. 微信表情包小程序,更新登录接口,增加举牌功能
  10. web服务器和应用服务器的区别
  11. Java(等级划分)
  12. 练习2-1 Programming in C is fun
  13. 【华为OD机试真题 C++】数字涂色 【2022 Q4 | 100分】
  14. 利用JavaScript实现一个简单的猜数字游戏
  15. 解决javascript提交form出现错误提示:对象不支持此属性或方法
  16. 百度一下,你就知道”你真的知道嘛?
  17. Markdown MathJax 恒不等于输入
  18. 旋转接头出现故障的原因分享
  19. 火狐浏览器旧版本(可安装firebug、Xpath插件等)
  20. python在家创业项目_2020在家创业,年轻人适合做什么?入门五个白手起家的好项目...

热门文章

  1. Aho-Corasick 多模式匹配算法(AC自动机) 的算法详解及具体实现
  2. LeetCode简单题之仅执行一次字符串交换能否使两个字符串相等
  3. LeetCode简单题之寻找数组的中心下标
  4. TVM性能评估分析(七)
  5. MindSpore 高阶优化器
  6. VTA:深度学习加速器堆栈
  7. AlexeyAB DarkNet YOLOv3框架解析与应用实践(二)
  8. 2021年大数据常用语言Scala(二十七):函数式编程 聚合操作
  9. [JS] [C] [编程题] 用户喜好
  10. Andriod TextView typeface