- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
for (i=0; iNUM; i++) { /* 通过键盘输入学生信息并写入文件 */ scanf(%d%s%s%s, s.No, s.name, s.department, s.major); fwrite(s, sizeof(INFO), 1, fp); } fclose(fp); /* 关闭文件 */ if ((fp=fopen(filename, rb)) == NULL) { /* 以二进制读方式打开文件 */ printf(\nCannot open %s file., filename); return 1; } while (fread(s, sizeof(INFO), 1, fp)) /* 从文件中读信息并显示输出 */ printf(\n%4d%16s%20s%20s, s.No, s.name, s.department, s.major); fclose(fp); /* 关闭文件 */ return 0; } */40 3 文件的操作 4 格式化读写操作 1、 fscanf( )的调用格式: fscanf(文件指针,格式字符串,输入列表); 例如: fscanf(fp, %d%f, i, j) ; 语句功能是:从fp所指的文件中按照格式控制的描述读取一个整型数值给i,一个单精度数值给j。 2、 fprintf ( )的调用格式: fprintf(文件指针,格式字符串,输出列表); 例如: fprintf(fp, %d%f, i, j); 语句功能是:将i、j的内容按照格式控制的描述写入fp所指的文件中。 输入输出的内容都为ASCII码值制形式 注意: 用fprintf和fscanf函数对磁盘文件读写,使用方便,容易理解, 但由于在输入时要将ASCII码转换为二进制形式,在输出时又要 将二进制形式转换成字符,花费时间比较多。因此,在内存与磁 盘频繁交换数据的情况下,最好不用fprintf和fscanf函数,而 用fread和fwrite函数。 */40 3 文件的操作 4 例5:从键盘输入一个源文件的名称和一个目的文件的名称,在源文件中存放了一个计算式(注意没有空格). 例如1+2 程序的功能是从源文件中读取该式,并计算其结果,将式子和结果以如下样式输出 1+2=3 */40 #include stdio.h int main(){ FILE *fp1, *fp2; char srcName[20],desName[20],op; float src1,src2,result; printf(请输入源文件名:\n); gets(srcName); printf(请输入目的文件名:\n); gets(desName); if((fp1=fopen(srcName,r))==NULL) { printf(file1 openned error.\n); exit(0); } if((fp2=fopen(desName,w))==NULL) { printf(file2 created error.\n); exit(0); } fscanf(fp1,%f%c%f,src1,op,src2); */40 switch(op){ case +: result=src1+src2; break; case -: result=src1-src2; break; case *: result=src1*src2; break; case /: result=src1/src2; } fprintf(fp2,%f%c%f=%f,src1,op,src2,result); fclose(fp1); fclose(fp2); return 0; } */40 #include stdio.h #define NUM 30 typedef struct info { /* 表示学生基本信息的结构体类型*/ int No; char name[16]; char department[32]; char major[32]; }INFO; 例6:P219 例6-15 */40 main( ) { INFO s; int i; FILE *fp; char f
文档评论(0)