1.文件操作的步骤
1)导入头文件stdio.h
2)定义文件指针
3)打开文件
4)读写文件
5)关闭文件
2.文件操作函数
1)字符读写函数 fgetc,fputc
2)字符串读写函数 fgets,fputs
3)数据块读写函数 fread,fwrite
4)格式化读写函数 fscanf,fprintf
3.文件的打开(fopen)关闭(fclose)
FILE *fp=NULL
p=fopen(文件名,使用文件的方式)
1)文件指针名必须是被说明为FILE类型的指针变量
2)文件名是被打开文件的文件名
3)使用文件方式是指文件的类型和操作要求
4)文件名是字符串常量式字符串数组
#include <stdio.h>
//a.txt储存在product目录下
- int main(){
- FILE *fp=NULL;
- fp=fopen("a.txt","r");
- if(fp!=NULL){
- printf("file");
- }else{
- printf("文件打开失败!按任意键推出!");
- gechar();
- exit(1);
- }
- return 0;
- }
复制代码
4.文件操作方式
1)r
只读文件,不能向文件写入数据。
2)w
创建一个新文件,准备向文件写入数据,不能从文件中读取数据,如果文件已存在,这个文件将被覆盖(先删后建)
3)a
打开一个已存在的文件,准备在文件尾部追加数据,不能从文件中读取数据,如果文件不存在,则创建这个文件。
4)r+
打开一个已存在的文件,准备读写
5)w+
创建一个新文件,准备读写,覆盖
6)a+
打开一个已存在的文件,准备在文件尾部追加数据,可以读写。
7)t
打开一个文本文件(ascii码文件)
8)b
打开一个二进制文件
默认打开方式是rt
5.fgetc和fputc
1)fputc(字符,文件指针);
- #include <stdio.h>
- int main(){
- FILE *fp = NULL;
- fp=fopen("fputc.txt","w");
- if(fp!=NULL){
- char ch = 'x'
- fputc(ch,fp);
- printf("写入成功");
- }else{
- printf("打开文件失败,按任意键推出!");
- getchar();
- exit(1);
- }
- fclose(fp);
- return 0;
- }
复制代码
2)fgetc()
FILE *fp=fopen("fputc.txt","r");
ch=fgetc(fp);
- #include <stdio.h>
- #include <stdlib.h>
- int main(){
- char ch[]="i love china";
- FILE *fp=fopen("ch.txt","w");
- if(fp!=NULL){
- for(int i=0;i<strlen(ch);i++){
- fputc(ch[i],fp);
- }
- }else{
- printf("打开文件失败,请按任意键退出!");
- getchar();
- exit(1);
- }
- fclose(fp);
- return 0;
- }
复制代码
- #include <stdio.h>
- #include <stdlib.h>
- int main(){
- FILE *fp=fopen("ch.txt","r");
- char s=fgetc(fp);
- while(s!=EOF){
- putchar(s);
- s=fget(fp);
- }
- fclose(fp);
- return 0;
- }
复制代码
6.字符串读取函数fgets(),fputs()
fputs()读取时,遇到\n和EOF结束读取
fputs 的返回值为输入字符的个数
7.数据块读写函数fread()和fwrite()
freard(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
1)buffer
指针,存放数据的地址,输出数据的地址
2)size
块的大小
3)count
读取几块
4)fp
文件指针 |
|