文件操作
文件包括:1.程序文件2.数据文件
程序文件(.c,.h,.obj,.exe)可以控制数据文件
文件类型:1.文本文件(可以看懂)以ASCII字符形式存储2.二进制文件(看不懂)
文件缓存区
文件指针
FILE* PF//文件指针变量
定义pf是一个指向FILE类型数据的指针变量,可以使pf指向某个文件的文件信息区(是一个结构体变量),通过该文件信息区中的信息就能够访问该文件
int main()
{
fopen("test.txt", "r");//相对路径写法
return 0;
}
标记全地址的话就是绝对地址,“\\”可以防止转移字符
文件的顺序读写
fputc——>写
应用:fputc('p',p);p为*p指向文件
fgetc——>读
应用:fgetc(p);
一个程序默认打开的该设备:stdin FILE*(标准输入设备)
stdout FILE*(标准输出设备)
stderr FILE*
#include<stdio.h>
int main()
{
int ch = fgetc(stdin);//从键盘读
fputc(ch, stdout);
return 0;
}
%.2f 保留小数点后打印两位
对比三组函数
scanf/printf 是针对标准输入流\标准输出流的格式化输入\输出访问
fscanf/fprintf 是针对所有输入流\所有输出流的格式化输入\输出访问
sscanf/sprintf sscanf是从字符串读取格式化的数据
sprintf是把格式化数据输出成(存储到)字符串
文件的随机读取
fseek:根据文件指针的位置和偏移量看、来定位文件指针
int fseek(FILE* stream,long int offset,int origin);
fseek(pf,2,seek_end);
ftell:返回文件指针相对于起始位置的偏移量
long int ftell(FILE* stream);
rewind:让文件指针的位置回到文件的起始位置
void rewind (FILE* stream);
文件结束判定:feof
strerror:把错误码对应的错误信息的字符串地址返回
printf("%s\n",strerror(errno));
preeor:直接打印出现的错误
perror("open");