1.什么是文件?
在磁盘上存储的文件是文件
一般来说文件分为两种:程序文件、数据文件
程序文件:源文件(后缀名.c), 目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)
数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。
今天我们要讨论的是数据文件
2.文件的打开和关闭
文件的打开和关闭是依靠文件指针来实现的,就是文件结构指针,简称文件指针
文件指针是指向一个描述文件信息的结构体的指针
文件结构体类型叫FILE,文件指针叫FILE*
这个结构体是在stdio.h这个头文件中定义的,不需要我们自己提供
创建一个FILE*的指针变量:
FILE* pf;//文件指针变量
//打开文件的函数
FILE * fopen ( const char * filename, const char * mode );
//关闭文件的函数
int fclose ( FILE * stream );
再来认识一下文件的打开方式:
"r"(只读) 为了输入数据,打开一个已经存在的文本文件 如果文件不存在报错
"w"(只写) 为了输出数据,打开一个文本文件 如果文件不存在创建新文件
"a"(追加) 向文本文件尾添加数据 如果文件不存在创建新文件
常用的就这三个,下面来看一下怎么使用:
2.1 只写
int main()
{
//以"只写"的方式打开文件
FILE* pf = fopen("tol.txt", "w");
//如果打开失败会返回空指针
if (pf == NULL)
{
perror("fopen");
return 1;
}
//写文件
//fputc函数就是打印字符到pf指向的文件中
fputc('a', pf);
fputc('b', pf);
fputc('c', pf);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
因为原来没有tol.txt文件,所以会在源文件所在的目录下新建一个名为tol.txt的文本文件
2.2 只读
int main()
{
//以"只读"的方式打开文件
FILE* pf = fopen("tol.txt", "r");
if (pf == NULL)
{
perror("fopen");
return 1;
}
//读文件
//从文件中获取字符打印到屏幕上
int ch = 0;
//当没有可读取的字符时返回EOF
while ((ch = fgetc(pf)) != EOF)
{
printf("%c", ch);
}
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
2.3 追加
int main()
{
//以"追加"的方式打开文件
FILE* pf = fopen("tol.txt", "a");
if (pf == NULL)
{
perror("fopen");
return 1;
}
//追加文件
fputc('d', pf);
fputc('e', pf);
fputc('f', pf);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
因为本节内容很少用到,所以就讲到这里,共勉
文章评论