头文件 //stdio.h
打开,创建 文件
函数
fopen(参数1,参数2);
解释
该函数运行后会产生一个文件指针(FILE *指针名)
参数1//文件标识
1,填入相对路径(在工作路径找) 及/文件名加后缀
2填入绝对路径 //路径+文件名+后缀
参数2//模式
"r":只读方式打开文件,文件必须存在。
"w":只写方式打开文件,如果文件存在则清空,不存在则创建。
"a":追加方式打开文件,写入的数据会被添加到文件末尾,不存在则创建。
"r+":读写方式打开文件,文件必须存在。
"w+":读写方式打开文件,如果文件存在则清空,不存在则创建。
"a+":读写追加方式打开文件,不存在则创建。
实现
#include <stdio.h>
int main(){
FILE *fp = fopen("example.txt", "a+");
if (fp == NULL)
{
perror("文件格式错误");
return -1;
}
}
关闭文件
使用 fclose() 函数来关闭一个已经打开的文件。关闭文件可以释放系统资源,确保数据正确写入。
关闭成功会返回一个0
fclose(文件指针)
文件的读写01
- fputc() 或 putc():写一个字符到文件
- 。//末尾写入
- 。//末尾写入
- fgetc() 或 getc():从文件读取一个字符。//错误返回 EOP
- 由于 fgetc() 和 getc() 都会移动文件指针,所以连续调用这两个函数会依次读取文件中的下一个字符。
- 由于 fgetc() 和 getc() 都会移动文件指针,所以连续调用这两个函数会依次读取文件中的下一个字符。
- fputs():写一个字符串到文件。
- //末尾开始写
- //末尾开始写
- fgets():从文件读取一个字符串。//错误返回NULL
- char *fgets(char *str, int n, FILE *stream);
- str:指向一个字符数组的指针,该数组用于存储从文件流中读取的字符串。
- n:要读取的最大字符数(包括最后的空字符 \0)。这意味着 fgets() 最多会读取 n-1 个字符,然后在末尾添加一个空字符来终止字符串。
- stream:指向文件流的指针,该文件流应该是以读取模式打开的
- char *fgets(char *str, int n, FILE *stream);
文本中字符位置指针
- fseek():根据文件指针的当前位置移动到文件中的指定位置。
- int fseek(FILE *stream, long int offset, int whence);
- stream:指向文件流的指针,这个文件流应该是已经打开的。
- offset:要移动的偏移量,以字节为单位。如果是正数,文件指针向前移动;如果是负数,文件指针向后移动。
- whence:定义了偏移量的起始点,可以是以下三个宏之一:
- SEEK_SET:文件的开始。
- SEEK_CUR:文件指针的当前位置。
- SEEK_END:文件的末尾。
- int fseek(FILE *stream, long int offset, int whence);
- ftell(文件指针):返回文件指针的当前位置。
- rewind(文件指针):将文件指针重置到文件的开始位置。