c语言文件操作函数总结fopen和fclose、fprintf和fscanf(格式化读写文件)

  • fopen和fclose

  • FILE *fp = fopen(“demo.txt”, “r”);

  • fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个 FILE 类型的结构体变量中,然后将该变量的地址返回。

  • 表示以“只读”方式打开当前目录下的 demo.txt 文件,并使 fp 指向该文件,这样就可以通过 fp 来操作 demo.txt 了。fp 通常被称为文件指针。

  • 打开文件出错时,fopen() 将返回一个空指针,也就是 NULL,我们可以利用这一点来判断文件是否打开成功,请看下面的代码:

FILE *fp;
if( (fp=fopen("D:\\demo.txt","rb") == NULL ){//挺重要的
    printf("打开文件失败!\n");
    exit(0);  //退出程序(结束程序)
}
  • r"
    以“只读”方式打开文件。只允许读取,不允许写入。文件必须存在,否则打开失败。
  • “w”
    以“写入”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。
  • “a”
    以“追加”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。
  • “r+”
    以“读写”方式打开文件。既可以读取也可以写入,也就是随意更新文件。文件必须存在,否则打开失败。
  • “w+”
    以“写入/更新”方式打开文件,相当于w和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。
  • “a+”
    以“追加/更新”方式打开文件,相当于a和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。
  • “t” 文本文件。如果不写,默认为"t"。 “b” 二进制文件。
  • 文件一旦使用完毕,应该用 fclose() 函数把文件关闭,以释放相关资源,避免数据丢失。fclose() 的用法为:fclose(fp);文件正常关闭时,fclose() 的返回值为0,如果返回非零值则表示有错误发生。

  • fprintf和fscanf(格式化读写文件)

  • fp 为文件指针,format 为格式控制字符串,… 表示参数列表。与 scanf() 和 printf() 相比,它们仅仅多了一个 fp 参数。例如:
FILE *fp;
int i, j;
char *str, ch;
fscanf(fp, "%d %s", &i, str);
fprintf(fp,"%d %c", j, ch);
  • fprintf() 返回成功写入的字符的个数,失败则返回负数。fscanf() 返回参数列表中被成功赋值的参数个数,文件结束会返回EOF

  • 格式化 就是会依据你输入的格式存储,比如说上面的%d %s 间隔一个空格就会保存一个空格

  • 这要有助于直接在程序外打开文件,查看内容

你可能感兴趣的:(C语言,c语言)