头文件 #include <stdio.h>
1.描述
fopen() 是 C 语言标准库中的一个函数,用于打开一个文件,并返回一个指向 FILE 结构体的指针。
2.声明
FILE *fopen(const char *filename, const char *mode)
3.参数
filename -- 表示文件的路径和名称的字符串。
mode -- 字符串,表示文件的访问模式,可以是以下表格中的值:
"r" | 打开一个用于读取的文件。该文件必须存在。 |
"w" | 创建一个用于写入的空文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。 |
"a" | 追加到一个文件。写操作向文件末尾追加数据。如果文件不存在,则创建文件。 |
"r+" | 打开一个用于更新的文件,可读取也可写入。该文件必须存在。 |
"w+" | 创建一个用于读写的空文件。 |
"a+" | 打开一个用于读取和追加的文件。 |
4.返回值
该函数返回一个 FILE 指针。否则返回 NULL,且设置全局变量 errno 来标识错误。
5.举一个小“栗”子
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
FILE * fp;
fp = fopen ("file.txt", "w+");
fprintf(fp, "%s %s %s %d", "hello", "word", "!", 2024);
fclose(fp);
return 1;
}
可以看到文件已经在目录下了
打开文件夹查看里面内容
6.注意啦!
文件关闭: 打开文件后,始终要记得关闭文件,以释放系统资源。未关闭的文件可能导致资源泄漏。
文件权限: 在进行写操作时,确保程序有足够的权限进行文件写入。否则,可能会因为权限问题导致文件操作失败。
文件存在性检查: 在以写入模式打开文件时,最好检查文件是否已经存在,以免意外覆盖现有文件。
缓冲刷新: 在写操作完成后,建议使用 fflush 函数刷新文件缓冲区,以确保数据被正确写入文件。
文件指针检查: 在使用文件指针之前,确保它不为 NULL,以防止在无效指针上执行文件操作。
7.再写个程序读取刚才的文件
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
fp = fopen("file.txt","r");
while(1)
{
c = fgetc(fp);//该函数以无符号 char 强制转换为 int 的形式返回读取的字符
if( feof(fp) )//检测流上的文件结束符的函数,如果文件结束,则返回非0值,否则返回0
{
printf("\n");
break ;
}
printf("%c", c);
}
fclose(fp);
return 1;
}
可以看到运行结果,和我们写入的字符串一样
感谢自己,以后忘了直接翻一下!