文件开关操作
fopen
文件打开fclose
文件关闭
函数名 | 参数 | 作用 | 返回值 |
---|---|---|---|
fopen() | 参数1:一个字符串用于描述文件的路径 参数2: 打开方式可以指定 r r+ w w+ wb wb+ a a+ 等操作 | 文件的打开 | 打开成功:FILE * 类型的指针 打开失败:返回 NULL |
fclose() | 参数1:文件类型的指针 | 关闭文件 | 关闭成功:0 关闭失败:EOF |
需要注意:
NULL
相当于 数字0
,EOF
相当于数字-1
举例说明
#include <stdio.h>
int main() {
FILE * fp = fopen("./example.txt", "w+"); // 打开文件 fp就是文件指针
fclose(fp); // 关闭文件
}
文件的读写操作
单个字符操作char 类型
fputc
向文件写入一个字符fgetc
向文件获取一个字符
函数名 | 参数 | 作用 | 返回值 |
---|---|---|---|
fputc() | 参数1:要被写入的字符 参数2:文件类型的指针 | 把参数1指定的字符(一个无符号字符)写入到指定的文件中 | 写入成功:返回参数1 写入失败:返回 EOF |
fgetc() | 参数1:文件类型的指针 | 从文件中获取一个字符 | 获取成功:返回从文件中获取的字符 获取失败:返回 EOF |
举例说明
#include <stdio.h>
int main() {
FILE * fp = fopen("./example.txt", "w+"); // 打开文件 fp就是文件指针
char ch = 'A';
fputc(ch, file);
char ch1 = fgetc(file);
fclose(fp); // 关闭文件
}
字符串操作char *
或 char []
类型
fputs
向文件写入一个字符串fgets
向文件获取一个字符串
函数名 | 参数 | 作用 | 返回值 |
---|---|---|---|
fputs | 参数1:要被写入的 字符串 参数2:文件类型的指针 | 向文件写入一个字符串 | 写入成功:返回一个写入的字符串的长度包括’\0’ 写入失败:返回 EOF |
fgets | 参数1:这是指向一个字符数组的指针,该数组存储了要读取的字符串 参数2:这是要读取的最大字符数(包括最后的空字符) 参数3:文件类型的指针 | 向文件获取一个字符串 | 获取成功:返回从文件中获取的字符串 获取失败:返回 EOF |
举例说明
#include <stdio.h>
int main() {
FILE * fp = fopen("./example.txt", "w+"); // 打开文件 fp就是文件指针
char n[10];
fgets(n, 10, fp); // 10 是最大字符数 但实际只可以获取 10 - 1 个 因为永远要给\0留位置
fputs(s, file); // 向文件写入一个字符串
fclose(fp); // 关闭文件
}
二进制 读写操作
fread
向文件获取一个指定大小的二进制数据流fwrite
向文件写入一个指定大小的二进制数据流
函数名 | 参数 | 作用 | 返回值 |
---|---|---|---|
fread | 参数1:指向带有最小尺寸 参数2*参数3 字节的内存块的指针。 参数2:要读取的每个元素的大小,以字节为单位。 参数3:元素的个数,每个元素的大小为 参数2 个字节。 参数4:文件类型的指针 | 给文件指针读取数据到 参数1 所指向的数组中。 | |
fwrite | 参数1:指向要被写入的元素数组的指针。 参数2:要被写入的每个元素的大小,以字节为单位。 参数3:元素的个数,每个元素的大小为 参数2 字节。 参数4:文件类型的指针 | 给文件指针写入数据到 参数1 所指向的数组中。 | |
举例说明
#include <stdio.h>
int main() {
FILE * fp = fopen("./example.txt", "w+"); // 打开文件 fp就是文件指针
char str[] = "搬搬砖得了";
fwrite( str, sizeof(str), 1, fp ); // 文件的内容为:搬搬砖得了
fclose(fp); // 关闭文件
}
文件指针的操作
rewind
将文件指针指向文件的开头ftell
获得文件指针当前的位置fseek
将文件指针定位到指定位置
函数名 | 参数 | 作用 | 返回值 |
---|---|---|---|
rewind | 参数1:文件类型的指针 | 设置文件位置为给定流 stream 的文件的开头。 | void |
ftell | 参数1:文件类型的指针 | 返回的当前文件指针位置 | long类型的当前指针位置,如果发生错误,则返回 -1L |
fseek | 参数1:文件类型的指针 参数2:偏移几个字节 参数3:以哪个 位置为基准 - SEEK_SET 文件的开头- SEEK_CUR 文件指针的当前位置- SEEK_END 文件的末尾 | 设置文件指针 的文件位置为给定的偏移 offset,参数 offset 意味着从给定的 whence 位置查找的字节数。 | 如果成功,则该函数返回零,否则返回非零值。 |
无示例