黑马程序员技术交流社区

标题: 基础班视频第十四天笔记 [打印本页]

作者: 香克斯    时间: 2015-10-16 15:36
标题: 基础班视频第十四天笔记
我记录的第十四天学习笔记,与大家分享
1)static和extern修饰变量
static修饰全局变量,表示该全局变量只能在当前文件中使用,而不能在其他文件中使用(内部变量)
      在不同的文件中使用static可以声明同名的变量

extern修饰全局变量,表示当前变量可以在本文件中使用,也可以在其他文件中使用
       extern声明的全局变量在不同的文件中不能同名(两个文件须有包含关系)

2)static和extern修饰函数       
        static修饰的函数是一个内部函数(只能在定义的那个文件中使用)
        extern声明的文件既可以在定义的文件中执行,也可以在声明的文件中使用,extern可以省略

3)文件的概念及分类
        “文件”值存储在外部介质上的数据集合,这个数据集有一个名称,叫做文件名
        1)从用户角度看:文件可分为普通文件和设备文件
        2)文件编码方式来看“ASCII码文件和二进制文件
4)文件操作的步骤及原理
        1.文件操作步骤1)引入头文件(stdio.h)   2)定义文件指针    3)打开文件   4)文件读写     5)文件关闭
        2.文件操作原理  1)文件缓冲区   2)输入输出流

5)C语言文件指针
        定义指针: FILE* 指针变量标识符    FILE *fp
       
6)文件的打开和关闭
        1文件的打开(fopen函数)  文件指针名fopen(文件名,使用文件方式)
                文件指针名  必须是说明file类型的指针变量
                文件名  是被打开文件的文件名
                使用文件方式  文件的类型和操作要求
                文件名 字符串敞亮或字符串数组
                       
        FILE *fp =NULL:
        fp=fopen("a.txt","r");//r表示读文件
                打开成功,返回文件首地址
                打开失败,返回NULL

        2、文件的关闭  (fcolse函数)
                fclose(文件指针):                   例如:fclose(fp)
               
                                               
7)文件使用方式
        r打开一个已存在的文件,准备从文件中读取数据,不能向文件写数据
        w创建一个新文件,准备向稳健写数据,不能从文件中读取数据,如果文件已经存在,这个文件将被覆盖(先删后建)
        a打开一个已经存在的文件,准备在文件尾部追加数据,不能从文件中读取数据,如果文件不存在,则串讲这个文件准备写入数据
        r+打开一个已经存在的文件,准备读写,即可以读取数据,也可以写入数据
        w+创建一个新文件,准备读写,如果文件已经存在,则覆盖原文件
        a+等价于a,但是可以从文件中读取数据
        t打开一个文本文件
        b打开一个二进制文件


8)字符读写函数:fgetc,fputc
        1.字符写入函数fputc     把字符写入指定文件   fputc('a',fp)
                //1定义文件指针   2.打开文件     3 判断是否打开成功    4如果打开成功写入字符           5关闭文件指针                  
rewind(指针名),将指针回到文件首位

                把X写入fputc1.txt中
                        FILE *fp=NULL
                        fp=fopen("fputc.txt","w")
                        if(fp!=NULL){
                        fputc('z',fp)
                        printf("写入成功")       
                        }
                        fclose(fp)
                       

        2.字符读取函数fgetc       

       
                        FILE *fp=NULL;
                        fp=fopen("fputc.txt","r");
                        if(fp!=NULL){
                        ch=fgetc(fp);

                        printf("%c\n",ch);       
                        }
       
                        fclose(fp)

9)保存键盘输入的字符串
        fputs(数组名,stdout/文件指针)返回值为写入的字符串长度   fgets(数组名,len,stdin/文件指针)
                注意:fgets读取的时候当文件内容读取完毕后会给字符串加上结束符\0,
                      遇到\n或者EOF,读取结束
10)查看文本文件的内容
        文本文件-->ascii码文件


11)数据块读写函数:fread和fwrite
        fread(buffer,size,count,fp)
          fwrite(buffer,size,count,fp)
                zize:表示数据块的字符数
                buffer:是一个指针,在fread含诸种,表示输入数据的首地址,在fwrite中表示存放数据的首地址
                count:表示要读写的数据块的块数
                fp:表示文件指针
        fread(fa,4,5,fp)        表示从pf中每次读取4个字节送入数组fa中,连续读5次               


12)从文件中读取结构体的信息
               
13)格式化读写函数fscanf和fprintf
        fscanf函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件

        fscanf(文件指针,格式字符串,输入表列)

14)文件的随机读写实现
        文件定位:  
                rewind(文件指针);    fseek(文件指针,位移量(long类型),起始点);
                文件首 SEEK_SET  O
                当前位置SEEK_CUR 1
                文件尾  SEEK_END 2
                fseek(fp,100L,0)  把位置指针移到文件手100个字节处


15)文件检测函数
        文件结束检测函数feof如果文件结束返回值为1,否则为0
        读写文件出错检测函数ferror:检查文件在用各种输入输出函数进行读写时是否出错,如果ferror返回值为0表示未出错,否则表示有错
               
        文件出错标志和文件结束标志置0函数clearerr(文件指针) 本函数用于清除错标志和文件结束标志,使他们为0值


                       




















       




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2