- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八讲 文件
8.1 文件及格式化输入输出 使用对文件的操作函数,均需要在程序首部联入头文件stdio.h 8.1.1 文件的打开与关闭 对文件进行操作之前,必须先打开该文件;使用结束后,应立即关闭,以免数据丢失。 C语言规定了标准输入输出函数库,用fopen()函数打开一个文件,用fclose()函数关闭一个文件。 8.1.2 文件的打开──fopen()函数 1.用法: FILE *fopen(文件名,操作方式); 2.功能:返回一个指向指定文件的指针。 1)“文件名”是指要打开(或创建)的文件名。如果使用字符数组(或字符指针),则不使用双引号。“文件名”可包含相对或绝对路径,如“c:\\work\data”或“..\\data”。不包含路径则表示文件在与可执行程序相同的目录中 2)最常用的“操作方式”如下表所示: 操作方式 含义 “r” 只读,如文件不存在则出错 “w” 只写,如文件已经存在,则删除其中原有数据;否则,创建新的文件 “a” 在文件尾部添加,如文件不存在则出错 例如,FILE *fp; fp=fopen(data.99,r); 3)如果不能实现打开指定文件的操作,则fopen()函数返回0)。 8.1.3 文件的关闭──fcolse()函数 1.用法: int fclose(FILE *文件指针); 2.功能:关闭“文件指针”所指向的文件。如果正常关闭了文件,则函数返回值为0;否则,返回值为非0。 例如,fclose(fp);/*关闭fp所指向的文件*/ 8.1.4 格式化输入输出 8.1.4.1格式化输入 scanf(“格式符”,输入变量首地址表); 格式符中“%”表示为格式串,依次和输入变量表中变量类型对应。 格式串最常用的有“%d”,“%c”,“%f”, “%s”,分别表示输入格式为整数,字符,浮点数和字符串。 例: int a,b; float c; char d,e[20]; ...... Scanf(“%d,%d,%f,%c,%s”, a, b, c, d, e); ...... 8.1.4.2 格式化输出 printf(“格式符”,输出参数表); 格式符中可包含scanf中格式符中格式串,格式串必须和后面参数表中参数1-1对应,也可包含一般字符串。 例:printf(“%d,%s”,a,e); printf(“a=%d,b=%s”,a,e); prinf(“these are all output parameter!”); 8.1.5 对文件进行格式化读/写──fscanf()和fprintf()函数 与scanf()和printf()函数的功能相似,区别在于:fscanf()和fprintf()函数的操作对象是指定文件,而scanf()和printf()函数的操作对象是标准输入输出文件。 int fscanf(文件指针,格式符,输入变量首地址表); int fprintf(文件指针,格式符,输出参量表); 例如,...... int i=3; float f=9.80; ...... fprintf(fp,%d,%f, i, f); ...... fprintf()函数的作用是,将变量i按%d格式、变量f按%f格式, 以逗号作分隔符,输出到fp所指向的文件中:3,9.80。 1)用法:int feof(文件指针); 2)功能:在执行读文件操作时,如果遇到文件尾,则函数返回逻辑真(1);否则,则返回逻辑假(0)。 例:从文件students.txt中读入学生基本信息,然后统计平均身高,添加到最后一行,students.txt文件内容为: Wang 170 Li 178 Zhang 189 程序运行后文件最后增加下列行: Average 179 #include stdio.h void main() { FILE *std; char name[10]; int height,sumheight=0,cnt=0; std=fopen(students.txt,r+a); while (!feof(std)) { fscanf(std,%s%d,name,height); sumheight+=height; cnt++; } fprintf(std,\n%s %d,average,sumheight/cnt); fclose(std); } 8.2 用数据流输入和输出文件 1.C++中关于数据的输入/输出采用数据流概念,数据流(stream)是指从源到一个终点之间数
文档评论(0)