- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在程序中,用“w”方式打开文件file2.txt,然后通过循环语句将字符型数组a中的字符串写入文件。写入时是按照字符串中字符的个数写入,并非按照数组定义的大小,而且是不含字符串结束符的,因此总共写入28个字符,文件长度也为28字节。 由于fputs函数并不将字符串结束符\0写入文件,文件中的字符串之间不存在任何分隔符,因此,字符串很难被正确读出。为了使文件中的字符串能被正确读出,可在每个字符串末尾增加一个换行符。这时,写入文件的每个字符串后除多一个换行符(\n)外,还自动加一个EOF。例如,将上例中的第4行改为: char a[ ][9]={BASIC\n, PASCAL\n, FORTRAN\n, COBOL\n, ALGOL\n}; 程序运行后,文件“file2.txt”的长度由28字节变为38字节。 【例8-4】在上例创建的file2.txt文件的末尾增加三个字符串“Turbo C”,“Borland C”,“MS-C”。 #include stdio.h FILE *fp; main() {char a[ ][10]={Turbo C\n, Borland C\n,MS-C\n }; int i; if ((fp=fopen(file2.txt, a))==NULL) {printf(Cannot open file\n); exit(1);} for (i=0;i=2;i++) fputs(a[i],fp); fclose(fp); } 8.4.2.2 fgets函数 fgets函数用来从指定的文本文件中读取一个字符串,其调用格式如下: fgets(s,n,fp); 其中,s是作为缓冲区使用的字符数组名或字符串指针,即为读取到的字符串的内存地址;参数n为读取字符的个数;参数fp为要读取文件的指针。 该函数的功能是从fp指定的文件中读取n-1个字符,存入s所指定的内存缓冲区。如果读取够n-1个字符,或在n-1个之前读取到换行符,或读取到文件结束标志EOF,将在读取到的字符串后自动添加一个\0字符,结束读取。读取到换行符被保留在\0之前,EOF不予保留。该函数执行成功,返回读取的字符串s的首地址,否则返回空指针。 8.4.3 文件的数据块读写函数 8.4.3.1 fwrite函数 fwrite函数用来向指定文件中写入数据块。其一般调用形式为: fwrite(buf,size,count,fp); 其中,buf为被写入数据在内存中存放的起始地址,可以是数组名或指向数组的指针;size为每次要写入的字节数;count为要写入的次数;fp为文件指针。 该函数的功能是从buf所指向的内存区域取出count个数据项写入fp指向的文件中,每个数据项的长度为size,也就是写入的数据块大小为size*count个字节。如果函数执行成功,返回值为实际写入数据项的个数,否则若返回值小于实际需要写入数据项的个数count,则出错。当文件按二进制打开时,fwrite函数可以写入任何类型的信息。 【例8-6】从键盘输入几个学生的学号、姓名、成绩,并将该数据写入文件file3.dat中。程序如下: #include stdio.h #define N 3 struct student {int no; char name[10]; int score; }stud[N]; main() {FILE *fp; int i; for (i=0;iN;i++) {printf (\nInput the number:); scanf (%d,stud[i].no); printf (Input the name:); scanf (%s,stud[i].name); printf(Input the score:); scanf(%d,stud[i].score); } if ((fp=fopen(file3.dat, wb))==NULL) {printf(Cannot open file\n); exit(1); } for (i=0;iN;i++) if (fwrite(stud[i],sizeof(struct student),1,fp)!=1) printf (File write error\n); fclose (fp); } 程序中字符常量N表示输入学生的个数,程序运行中一共输入了三个学生的数据: Input the number:1↙ Input the name:LiMing↙ Input the score:90
您可能关注的文档
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳 第7章 Visual Basic 6.0数据库编程基础.ppt
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳 第8章 程序调试与维护.ppt
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳 第9章 综 合 案 例.ppt
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳配套习题1 笔试试题二(答案).doc
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳配套习题1 笔试试题二.doc
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳配套习题1 笔试试题一(答案).doc
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳配套习题1 笔试试题一.doc
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳配套习题1 上机试题二.doc
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳配套习题1 上机试题一.doc
- 可视化编程应用——Visual Basic 6.0 第二版 教学课件 作者 杜秋华 康慧芳习题答案 第1章习题参考答案.doc
- 《GB/T 17737.9-2024同轴通信电缆 第9部分:柔软射频同轴电缆分规范》.pdf
- GB/T 17737.9-2024同轴通信电缆 第9部分:柔软射频同轴电缆分规范.pdf
- 中国国家标准 GB/T 17737.9-2024同轴通信电缆 第9部分:柔软射频同轴电缆分规范.pdf
- GB/T 44003-2024力学性能测量 REBCO涂层导体(镀铜)脱层强度测试方法.pdf
- 中国国家标准 GB/T 44021.2-2024音视频及相关设备 功耗测量 第2部分:测试信号和媒介.pdf
- 《GB/T 44021.2-2024音视频及相关设备 功耗测量 第2部分:测试信号和媒介》.pdf
- GB/T 44021.2-2024音视频及相关设备 功耗测量 第2部分:测试信号和媒介.pdf
- GB/T 43962.1-2024动力电池数字化车间集成 第1部分:通用要求.pdf
- 2024广西南宁市江南区教育局面向南宁市公办学校招募中学支教志愿者88人笔试备考试题及答案解析.docx
- 2024广西合浦县山口镇人民政府公开招聘村级防贫监测信息员2人笔试备考试题及答案解析.docx
文档评论(0)