C语言中的文件格式化读写函数:fprintf和fscanf 傷城~ 2021-11-02 00:28 245阅读 0赞 学过C语言的,对printf和scanf函数肯定不会陌生(如果不知道,那说明你就没学过C语言),这两个函数分别是格式化输出和格式化输入函数,按照指定的格式输入数据或者在屏幕上输出数据。 fprintf函数和fscanf函数和printf和scanf相比,就是多了个f前缀,这个f当然就是指的file,也就是文件了,后两者是操作的对象是终端设备,前者则是针对磁盘文件的操作,因此fprintf函数和fscanf函数就是了C语言中文件的格式化输入输出函数。 学C语言,老师就要布置作业的吧,作业做什么呢?一般都是做学生成绩管理系统吧,那就要设计个数据结构保存学生的信息吧,姓名、学号、成绩等等的,用什么好呢,那当然是[结构体struct][struct]了。 C语言: [知蚁博客][Link 1] struct student \{ char chName\[ 20\]; //姓名 int nID; //学号 float fScores\[ 3\]; //3门课的成绩 \}; 上面就是一个比较简单的用于保存学生成绩信息的结构体类型了,其中包括学生的姓名、学号以及三门课的成绩,下面知蚁就介绍如何使用fprintf函数和fscanf函数来读写这种类型的数据。 ### fprintf函数和fscanf函数调用方式 ### **fprintf(文件结构指针,格式字符串,输出表列);** **fscanf(文件结构指针,格式字符串,输出表列);** 两个函数的参数都一样,怎么写到文件中的就怎么读进来,还是比较方便的,用过printf函数的应该都知道上面的函数怎么用的吧(不知道就赶紧找资料吧,(\*^\_\_^\*) 嘻嘻……),唯一不同的是,这里多了个文件结构指针的参数,看过知蚁前面几篇文章的,应该对这个比较熟悉了。 ### fprintf函数和fscanf函数示例程序 ### 下面的示例程序包括fprintf写入文件、fscanf读取文件以及printf输出到屏幕等操作。 C语言: [知蚁博客][Link 1] void main() \{ FILE \*pWrite,\*pRead; struct student tStu,tStu2; char \*pName = “letuknowit”; pWrite=fopen(“stu\_scores.txt”,“w”); if(NULL == pWrite) \{ return; \} //初始化结构体信息,用于写入文件 memcpy(tStu.chName,pName,20); tStu.nID = 1; tStu.fScores\[0\] = 89.0; tStu.fScores\[1\] = 87.0; tStu.fScores\[2\] = 88.0; //写入数据到文件中 fprintf(pWrite,“%d %s %f %f %f\\n“,tStu.nID,tStu.chName,tStu.fScores\[0\],tStu.fScores\[1\],tStu.fScores\[2\]); fclose(pWrite); pRead=fopen(“stu\_scores.txt”,“r”); if(NULL == pRead) \{ return; \} //从文件中读取数据(主要下面参数中的&) fscanf(pRead,“%d %s %f %f %f\\n“,&tStu2.nID,tStu2.chName,&tStu2.fScores\[0\],&tStu2.fScores\[1\],&tStu2.fScores\[2\]); fclose(pRead); //打印读取的数据到屏幕上 printf(“%d %s %.1f %.1f %.1f\\n“,tStu2.nID,tStu2.chName,tStu2.fScores\[0\],tStu2.fScores\[1\],tStu2.fScores\[2\]); \} 转载于:https://www.cnblogs.com/toto0473/archive/2012/09/07/2674542.html [struct]: http://www.letuknowit.com/archives/81 [Link 1]: http://www.letuknowit.com/
还没有评论,来说两句吧...