C语言课件--文件第13讲.pptVIP

  • 4
  • 0
  • 约8.15千字
  • 约 32页
  • 2017-06-26 发布于湖北
  • 举报
C语言课件--文件第13讲

第十二章 文件 文件的定义:存储在外存储器上的一组相关数据的有序集合。 缓冲文件系统:系统在内存中开辟一块缓冲区以便慢速 的外设与其成块地进行数据交换。 r+与w+的区别: r+为读和写而打开文本文件,用这种方式时,指定的文件应当已经存在,既可以读也可以写,在读和写操作之间不必关闭文件,只是对文本文件来说,读和写总是从文件的起始位置开始,在写新的数据时,只复盖新数据所占的空间,其后的老数据并不丢失。 w+首先建立一个新文件,进行写操作,随后可以从头开始读。如果指定的文件已存在,则原有的内容将全部消失。 fgetc( )函数 一般形式: 字符变量=fgetc(文件指针); 功能:从指定文件读入一个字符,该文件必须是以读或读写方式打开 返回值:调用成功时返回读入的字符 文件结束时返回文件结束符 EOF(-1) 文件位置指针 文件型数据结构中,用文件位置指针指向当前对文件进行读写操作的位置。在文件打开时,该指针总是指向文件的第一个字节。读写文件时,每读写一个字符后,该位置指针的值会自动加1,指向下一个字符。改变位置指针的值,也就改变了下一次读写操作在文件中执行时的位置。 feof( )函数 一般形式: feof(文件指针); 功能:判断文件位置指针是否已至文件尾 返回值:函数返回值为1时表示已至文件尾部,为0时则还 未到文件结束处 fputc( ) 函数 一般形式:fputc(字符量,文件指针); 功能:将一个字符写到磁盘文件上去 返回值:调用成功时返回输出的字符,失败时返回EOF(-1) 题目:打开“c:\infile.c”文件,然后将其复制到“c:\outfile.c”上 #include “stdio.h” #include “stdlib.h” void main( ) { FILE *infp,*outfp; char ch; if ((infp=fopen(“c:\\infile.c”, “r”))== NULL) { printf(“Cannot open this infile. \n”); exit(0); } outfp=fopen(“c:\\outfile.c”,”w”);   while(!feof(infp))    if((ch=fgetc(infp))!=EOF)      fputc(ch,outfp);   fclose(infp);   fclose(outfp); } fgets( )函数: 一般形式:fgets(字符数组名,n,文件指针); 功能:从指定文件读入n-1个字符到字符数组, 最后加一个    ‘\0’结束符。在读完n-1个字符之前遇到换行符或文    件结束符(EOF),读入即结束 返回值:str的首地址 fputs( )函数 一般形式:fputs(字符串,文件指针); 功能:向指定的文件输出一个字符串, ‘\0’ 结束符不输出。    其中字符串可以是字符串常量、字符数组名或指针    变量 返回值:调用成功时,返回0,否则返回EOF #include stdio.h void main( ) { FILE *fp; char str[100], ch;  fp=fopen(“abc.c”,”w”); printf(请输入一串字符:\n);   gets(str);   fputs(str,fp);   fclose(fp);        if((fp=fopen(c:\\abc.c, r))== NULL)   {  printf(file open error.\n);   exit(0);   }   while(!feof(fp))    if((ch=fgetc(fp))!=EOF)      putchar(ch);   fclose(fp); } fscanf( )函数和fprintf( )函数对磁盘文件读写,使用方便,易理解。但输入输出需要转化,因此,在内存与磁盘频繁交换数据的情况下,最好用fread( )和fwrite( )函数 随机读写:移动文件内部的位置指针到需要读写的位置, 再进行读写 文件定位:按要求移动位置指针,是实现随机读写的关键 fseek( )函数 功能:改变文件的位置指针 题目:设文件“alphabet”中存放了字母表“A┅Z”,现在打开这个文件,用从尾部倒着读的方式将其信息读出并送屏幕显示。 #include

文档评论(0)

1亿VIP精品文档

相关文档