《(68)--10.3 文件的顺序读写及其应用(一).ppt》由会员分享,可在线阅读,更多相关《(68)--10.3 文件的顺序读写及其应用(一).ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、10.3 文件的顺序读写及其应用(一)文件的顺序读写及其应用(上)C语言文件的打开文件的关闭C语言文件的顺序读写及其应用(一)在顺序写时,先写入的数据存放在文件中前面的位置,后写入的数据存放在文件中后面的位置。在顺序读时,先读文件中前面的数据,后读文件中后面的数据。文件的顺序读写C语言 从键盘输入1个学生信息将数据存储到磁盘文件中文件的顺序读写及其应用(一)CONTENTS内容 字符数据的读写01 字符串数据的读写02 二进制数据的读写03 数据的格式化读写04 任务实现05字符数据的读写01C语言字符读取函数fgetc()文件的顺序读写及其应用(一)字符数据的读写 int fgetc(FIL
2、E*fp);int fgetc(FILE*fp);说 明1:fgetc为函数名,该函数有1个参数,fp为文件指针,意思是从fp指针指向的文件读入一个字符。说 明2:fgetc()函数调用前必须保证文件是以读或者读写的方式打开的。说 明3:fgetc()读取成功时返回读取到的字符,读取到文件末尾或读取失败时返回EOF。说 明4:fgetc()读函数返回值为int型主要是为了包含文件末尾或者失败返回的EOF,EOF在很多编译器中用-1表示。说 明5:每次使用fgetc()函数后,该位置指针会向后移动一个字节。因此可使用fgetc()函数读取多个字符。C语言字符写入函数fputc()int fput
3、c(char ch,FILE int fputc(char ch,FILE*fp);*fp);说 明1:fputc为函数名,ch为要向文件写入的内容,fp表示文件指针,每次使用fputc()函数后,位置指针也会向后移动一个字节,因此借助循环输出,可以将批量字符输出到文件之中。说 明2:int为返回值类型,如果写入字符成功则返回写入的字符,否则返回EOF,一般可以使用不等于EOF来判断写入字符成功。说 明3:使用fputc()函数写入字符,要求在打开被写入文件时必须包含写、读写或者追加的权限。文件的顺序读写及其应用(一)字符数据的读写字符串数据的读写02C语言字符串读取函数fgets()文件的顺
4、序读写及其应用(一)字符串数据的读写char*fgets(char*str,int n,FILE*fp);char*fgets(char*str,int n,FILE*fp);说 明1:从fp指向的文件中读取n-1个字符,并把他们存放到有str指针指向的字符数组中,最后加上字符串结束符0。说 明2:str表示接受字符串的内存地址,可以是数组名,也可以是指针;n表示要读取的字符的个数,这里注意实际读取的长度是n-1,因为要留1个字节长度存储字符串结束标记0;fp是文件指针,指向要读取的文件。说 明3:fgets()函数的返回值是一个地址。如果正常返回,则返回字符串的内存首地址,即str的值。如果
5、产生异常则返回NULL。这种情况应当用feof()或ferror()函数来判别是读取到了文件尾,还是发生了错误。例如:fgets(str,10,fp);C语言字符串写入函数fputs()int fputs(char*str,FILE*fp);int fputs(char*str,FILE*fp);说 明1:fputs为函数名,将str指向的字符串,写入fp指向的文件中。说 明2:str是要写入的字符串,fp 为文件指针。写入成功返回非负数,失败则返回EOF。例如:fputs(“China”,fp);文件的顺序读写及其应用(一)字符串数据的读写二进制数据的读写03C语言数据块读出函数fread(
6、)文件的顺序读写及其应用(一)二进制数据的读写int fread(void*buffer,unsigned size,unsigned count,FILE*fp);int fread(void*buffer,unsigned size,unsigned count,FILE*fp);说 明1:从fp指向的文件中,按二进制形式将size*count个数据读到由buffer指定的缓冲区。说 明2:buffer是一个void型指针,指定要将读入数据存放区域的首地址;size是一个数据块的字节数,通俗讲就是数据块的大小尺寸;count指一次读入多少个数据块size;fp是要读取的文件的文件指针。说
7、明3:函数返回值为整型,正常返回count数,异常返回0。例如:fread(f,4,10,fp);C语言数据块写入函数fwrite()int fwrite(void*buffer,unsigned size,unsigned count,FILE*fp);int fwrite(void*buffer,unsigned size,unsigned count,FILE*fp);说 明1:按二进制形式,将由buffer指定的数据缓冲区内的size*count个数据写入fp指向的文件中。说 明2:其他参数与返回值和fread()函数一样。例如:fwrite(f,4,10,fp);文件的顺序读写及其应
8、用(一)二进制数据的读写数据的格式化读写04C语言格式化写入函数fprintf()int fprintf(FILE*fp,char*format,arg_list);int fprintf(FILE*fp,char*format,arg_list);说 明1:将变量表列(arg_list)中的数据,按照format指定的格式,写入由fp指定的文件。说 明2:fprintf()函数与printf()函数的功能相同,只是printf()函数是将数据写入屏幕文件(stdout),而fprintf()函数将数据写入磁盘文件。说 明3:fp是文件指针指向要写入数据的文件;format是指向格式化字符串的
9、字符串指针,格式化规则与printf()函数相同;arg_list指要写入文件的变量表列,各变量之间用逗号分隔。例如:fprintf(fp,”%d,%6.2f”,i,f);文件的顺序读写及其应用(一)数据的格式化读写C语言格式化读取函数fscanf()int fscanf(FILE*fp,char*format,arg_list);int fscanf(FILE*fp,char*format,arg_list);说 明1:fscanf()的函数的功能是文件指针fp指向的文件中连续读取能够匹配format格式的字符到参数列表arg_list中对应的变量里。说 明2:参数含义和fprintf()函数相同。例如:fscanf(fp,”%d,%f”,&i,&f);文件的顺序读写及其应用(一)数据的格式化读写1.字符数据的读写2.字符串数据的读写 3.二进制数据读写4.数据的格式化读写