- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用fgets函数实现字符串的读入 fgets(字符数组,读取到字符数组中的字节数,文件指针变量); 例如:fgets (str,n,fp); 在上例,从指针fp指向的文件中读取n?1个字符(注意不是n个字符),并把它放到字符数组str中。如果在读入n?1个字符完成之前遇到换行符\n或文件结束符EOF,则结束读入并将遇到的换行符\n也作为一个字符送入str数组。系统最后会在读入的字符串之后自动加一个\0,因此送到字符数组str中的字符串(包括\0在内)最多可占用n个字节。fgets函数的返回值为str 数组首地址,如果读到文件尾或出错则返回NULL。 利用fputs函数实现字符串的写入 fputs(字符串或字符串变量,指针变量); 例如: fputs (str,fp); 通过fputs函数的调用,完成将字符数组str中的字符串(或字符指针指向的串,或字符串常量)输出到fp所指向的文件。但字符串结束符\0不输出。 请看程序example10_4.c和example10_5.c 格式化输入输出函数 前面我们用格式化输入函数scanf从终端输入数据,用格式化输出函数printf向终端输出数据。但是如果输入输出的对象不再是终端,而是磁盘文件,上面的两个函数显然已不再适用。 对于面向磁盘文件的格式化输入和输出,就要用到fscanf和fprintf这两个函数。各在scanf和printf这两个名字前面加一个字母f,表示是对“文件”(file)的操作。它们的一般调用方式为: fprintf(文件指针,格式字符串,输出表列); fscanf(文件指针,格式字符串,输入表列); 参数格式字符串、输入表列的规定及使用方法同scanf和printf中的规定。例如: fprintf(fp,“%d,%6.2f”,i,t); 它的作用是将整型变量i和实型变量t的值按%d和%6.2f的格式输出到fp指向的文件上。如果i=3,t=4.5,则输出到磁盘文件上的是以下的字符串: 3, 4.50 同样,用以下fscanf函数可以从磁盘文件上读入ASCII字符: fscanf(fp,”%d,%f”,i,t); 磁盘文件上如果有以下字符: 3,4.5 则将磁盘文件中的数据3送给变量i,4.5送给变量t。用fprintf和fscanf函数对磁盘文件读写,使用方便,容易理解,但由于在输入时要将ASCII码转换为二进制形式,在输出时又要将二进制形式转换成字符,花费时间比较多。因此,在内存与磁盘频繁交换数据的情况下,最好不用fprintf和fscanf函数。 请自己运行example10_6.c和example10_7.c fread和fwrite函数的调用形式 除了用以上介绍的方式读写文件之外,ANSI标准还对缓冲文件系统作了扩充,允许按“记录”(即按数据块)来读写文件。这是以前UNIX系统中的缓冲文件系统所不提供的。C语提供的这种读写方式,可以方便地对程序中的数组、结构体数据进行整体输入输出。C语言是用fwrite和fread 函数按“记录”进行读写的,其调用形式如下: fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); 函数说明 (1)buffer是一个指针(地址),对fread 来说,它是读入数据存储区的起始地址,对fwrite来说,是将要输出数据存储区的起始地址;size为要读写的字节数;count表示要读写多少个size字节的数据项;fp为文件类型指针变量。(2)fwrite和fread的函数返回值为实际上已读入或输出的项数。也就是说如果执行成功则返回count的值。(3)用fread和fwrite函数按“记录”读写时,必须采用二进制方式。ANSI标准就是企图用这种方式来取代原来用非缓冲文件系统处理二进制文件的方法。 例如: fwrite(arr,100,2,fp); 表示从数组名arr所代表的数组起始地址开始,每次输出100个字节的数据,共输出2次,输出到fp所指向的磁盘文件中。如执行成功,函数的返回值为2。 函数说明 用fwrite函数不仅能输出结构体变量的内容,也可以输出一个数组的全部元素值给文件。例如,如果table已定义为数组名,则用下面语句可输出其全部元素: fwrite(table,sizeof(table),1,fp); PS:对字符文件读写时,在输入回车换行时转换为换行符,在输出换行符\n时转换为回车换行(CR/LF)。在对二进制文件进行读写时,不进行这种转换。在内存中的数据形式与输出到磁盘文件中的数据形式完全一致。 顺序读写 上面介绍的对文件的读写都是顺序读写,即从文件的
文档评论(0)