文件
- 文本文件:存储时,是将字符的ascii值存在磁盘中,取的时候将数值ascii翻译成对应的字符
- 二进制文件:存的是二进制,取的是二进制
文件指针
- 当打开一个文件时,系统会返回一个结构体,这个结构体有对此文件操作的所有信息
- 调用fopen时,系统返回这个结构体地址
- FILE *p = fopen(“a.txt”,”r”);
1 | typedef struct |
文件指针
- 当打开一个文件时系统会返回一个结构体,这个结构体有对此文件操作的所有信息
- 调用fopen时,系统返回这个结构体地址
1 | FILE *p = fopen("a.txt"); |
打开文件
- FILE *fp = fopen(“pathname”,打开方式);
- 注意打开的选项
- 只有带r的选项,如果文件不存在,不创建文件
- 带w的选项,打开时会清空文件
- fopen的返回值:如果成功返回FILR结构体地址,失败返回NULL
- 返回的文件流指针标识了打开的那个文件
r或者rb | 以只读的方式打开一个文本文件(不创建文件,若文件不存在则报错) |
---|---|
w或者wb | 以写的方式打开文件(如果文件存在则清空文件,文件不存在则创建) |
a或者ab | 以追加的方式打开文件,在末尾添加内容,若文件不存在则创建文件 |
r+或者rb+ | 以可读,可写的方式打开文件(不创建新文件) |
w+或者wb+ | 以可读,可写的方式打开文件(如果文件存在则清空文件,文件不存在则创建) |
a+或者ab+ | 以添加文件的方式打开文件,打开文件并在末尾更改文件,若文件不存在则创建文件 |
1 | FILE *fp fopen("a.txt","w"); |
fclose
- fclose(FILE *fp);
- 功能:关闭文件
- 参数:文件流指针
相对文件
- 在vs中调试运行:相对路径,相对的是工程文件
- 手动运行,相对路径相对路径是,当前的可执行文件
设备文件
- stdin
- stdout
- stderr
- 当启动一个程序时,系统打开3个设备文件
1 | FILE *stdin = fopen(stdin,"r"); |
fputc
- 功能: 写入一个字符到文件中
1 |
|
代码示例
1 | FILE *fp = fopen("a.txt","w"); |
fgetc
1 |
|
feof
- 如果读取文件不是纯文本,有像-1这种数字,那么就不可以使用EOF(-1)作为文件的结尾
1 |
|
fgets 从文件读取字符串
注意:fgets读取遇到\n结束
1 |
|
fputs向文件写入字符串
1 |
|