【C语言】文件操作

一、文件的储存形式

分为文本(ASCII码)文件二进制文件两类。

文本文件

文件每一个字节存放一个ASCII码,代表一个字符。如整数123在文本文件中占3个字节。

二进制文件

将数据以其在内存中的形式原样存放。如整数123和整数1234在二进制文件中均占4个字节。

二、文件操作

//文件指针变量
FILE *fp;
//文件打开函数
FILE *fopen(const char *filename,const char *mode);
//返回值为一个文件指针变量
//参数为文件名及使用方式
//文件关闭函数
int fclose(FILE *fp);
//返回值为0(成功关闭)或非零值(关闭失败)
//参数为文件指针
//从文件读入
int fscanf(FILE *fp,const char*format,...);
//例
fscanf(fp,"%d,%f",&i,&a);
//输出到文件
int fprintf(FILE *fp,const char*format,...);
//例
fprintf(fp,"%d,%f",a,b);
//容错处理
//如,当文件指针为空时终止进程
if((fp=fopen("input.txt","w"))==NULL){
  printf("文件打开失败!");
  exit(0);
}
//exit(0)为正常退出
//exit(非零值)为异常退出
//从文件读入字符
int fgetc(FILE *fp);
//返回值为一个字符
//如果读到文件结束符则返回EOF
//输出字符到文件
int fputc(int ch,FILE *fp);
//返回值为一个字符(如果成功写入)或EOF
//检测文件位置函数
int feof(FILE *fp);
//如果读到文件尾返回非零常数,否则返回0
//从文件读入字符串
char *fgets(char *str,int n,FILE *fp);
//读入最多n-1个字符并在末尾添加'\0',然后存入str
//返回值为字符串首地址
//输出字符串到文件
int fputs(const char *s,FILE *fp);
//返回值为一个非负数(如果成功输出),否则返回EOF
//读写数据块

//从文件读入学生数据
for(int i=1;i<=30;i++)
  fread(&stu[i],sizeof(struct student),1,fp);

//输出学生数据到文件
for(int i=1;i<=30;i++)
  fwrite(&stu[i],sizeof(struct student),1,fp);
文件使用方式 含义
"r"(只读) 打开文本文件(输入)
"w"(只写) 打开文本文件(输出)
"a"(追加) 向文本文件尾加数据
"rb"(只读) 打开二进制文件(输入)
"wb"(只写) 打开二进制文件(输出)
"ab"(追加) 向二进制文件尾加数据
"r+"(读写) 打开文本文件
"w+"(读写) 新建文本文件
"a+"(读写) 打开文本文件
"rb+"(读写) 打开二进制文件
"wb+"(读写) 新建二进制文件
"ab+"(读写) 打开二进制文件

以"w"方式写入:

如果文件已经存在,则删去原文件并重新建立;否则新建一个文件

以"a"方式写入:

如果文件已经存在,则在原数据末尾写入新数据;否则新建一个文件

原文链接: https://www.cnblogs.com/streamazure/p/13034951.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    【C语言】文件操作

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/352609

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午7:38
下一篇 2023年3月2日 上午7:38

相关推荐