1.什么是文件?
1.1.程序文件:
程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows环境后缀为.exe)。
1.2.数据文件:
⽂件的内容是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。
注:可以说,程序文件操作数据文件。
1.3.文件名:
⽂件名包含3部分:⽂件路径+⽂件名主⼲+⽂件后缀
例如: c:\code\test.txt
2.二进制文件和文本文件:
文本文件:存储文本信息的文件
二进制文件:存储二进制信息的文件
ASCII:文本文件;二进制:二进制文件
3.文件的打开和关闭:
3.1.流和标准流:
为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。
⼀般情况下,我们要想向流⾥写数据,或者从流中读取数据,都是要打开流,然后操作。
C语⾔程序在启动的时候,默认打开了3个流:
• stdin : 标准输⼊流,在⼤多数的环境中从键盘输⼊。
• stdout : 标准输出流,⼤多数的环境中输出⾄显⽰器界⾯。
• stderr : 标准错误流,⼤多数环境中输出到显⽰器界⾯。
3.2.文件指针:
每个被使⽤的⽂件都在内存中开辟了⼀个相应的⽂件信息区,⽤来存放⽂件的相关信息(如⽂件的名字,⽂件状态及⽂件当前的位置等)。这些信息是保存在⼀个结构体变量中的。该结构体类型是由系统声明的,取名FILE.
FILE* pf;//文件指针变量
3.3.文件的打开和关闭: fopen和 fclose:
(1)fopen函数:
FILE * fopen ( const char * filename, const char * mode );
文件名 打开方式
打开方式:
“r” :读文件,如果文件不存在,返回NULL,成功返回文件地址;
“w”:写文件,如果文件存在,清空文件内容;不存在则新建文件。
其他:
FILE* pf = fopen("text.txt", "w");
注:如果文件不在当前路径下,可指定路径。(需用\\把\转换为普通\)
1.绝对路径:
FILE* pf = fopen("C:\\Users\\xxx\\Desktop\\text.txt", "w");
2.相对路径:
‘.’ 表示路径 ‘..’ 表示上一级路径
FILE* pf = fopen(".\\..\\..\\text.txt", "w");
//表示当前路径底下的上一级路径再上一级路径
(2)fclose函数:
int fclose ( FILE * stream );
注:需将指针置为空指针。
4.文件的顺序读写:
4.1.函数介绍:
eg:
int main()
{
FILE* pf = fopen("text.txt", "w");
if (pf == NULL)
{
perror("fopen");
return 1;
}
fputc('x', pf);
return 0;
}