我记录的第十四天学习笔记,与大家分享
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值
|
|