C 语言编程 — 文件操作

Posted 范桂飓

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言编程 — 文件操作相关的知识,希望对你有一定的参考价值。

目录

文章目录

fopen() 创建或打开文件

fopen() 用于创建一个新的文件或者打开一个已有的文件,并返回一个 FILE 类型,其包含了所有用来控制文件数据流的必要的信息。

FILE *fopen(const char * filename, const char * mode);

对于文本文件,支持以下 mode 类型;而对于二进制文件,则需使用下面的访问模式来替代:

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

fclose() 关闭文本文件

fclose() 会清空缓冲区中的数据、关闭文件、并释放用于该文件的所有内存。如果成功关闭文件,它会返回 0;如果关闭文件时发生错误,则返回 EOF。EOF 是一个定义在头文件 stdio.h 中的常量。

int fclose(FILE *fp);

fputc() / fputs() / fprintf() 写文本文件

  • fputc() 用于把 int c 对应的字符值写入到 fp 所指向的输出流中。如果写入成功,它会返回写入的字符值;如果发生错误,则返回 EOF。
int fputc(int c, FILE *fp);
  • fputs() 用于把一个以 null(“\\0")结尾的字符串写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值;如果发生错误,则返回 EOF。
int fputs(const char *s, FILE *fp);
  • fprintf() 用于把一个字符串完整的写入到文件中。
int fprintf(FILE *fp, const char *format, ...)

示例:

#include <stdio.h>

int main() 

   FILE* fp = NULL;

   fp = fopen("/tmp/test.txt", "w+");
   fprintf(fp, "This is testing for fprintf...\\n");
   fputs("This is testing for fputs...\\n", fp);
   fclose(fp);
   return 0;

fgetc() / fgets() / fscanf() 读文本文件

  • fgetc() 用于从 fp 所指向的输入文件中读取一个字符值,返回值是读取的字符值,如果发生错误则返回 EOF。
int fgetc(FILE *fp);
  • fgets() 用于从 fp 所指向的输入流中读取字符串(n-1 个字符值)。它会把读取的字符串复制到 buf 缓冲区,并在最后追加一个 null(“\\0")字符来终止字符串。如果这个函数在读取最后一个字符之前就遇到一个换行符 “\\n" 或文件的 EOF 末尾,则只会返回读取到的字符串,包括换行符。
char *fgets(char *buf, int n, FILE *fp);
  • fscanf() 用于从文件中读取字符串,但是在遇到第一个空格和换行符时,它会停止读取。
int fscanf(FILE *fp, const char *format, ...)

示例:

#include <stdio.h>

int main() 
   FILE* fp = NULL;
   char buff[255];

   fp = fopen("/tmp/test.txt", "r");
   fscanf(fp, "%s", buff);
   printf("1: %s\\n", buff);

   fgets(buff, 255, fp);
   printf("2: %s\\n", buff);
   
   fgets(buff, 255, fp);
   printf("3: %s\\n", buff);
   fclose(fp);

   return 0;

运行:

1: This

2:  is testing for fprintf...

3: This is testing for fputs...
  • fscanf() 只读取了 “This“,因为它在后边遇到了一个空格。
  • fgets() 读取了剩余的部分,直到行尾。
  • fgets() 完整地读取第二行。

以上是关于C 语言编程 — 文件操作的主要内容,如果未能解决你的问题,请参考以下文章

C语言用C语言实现单链表的所有操作

C语言怎样对文件进行操作

C语言 文件操作7--文件错误处理

C 语言文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )

C语言之文件操作(上)

C语言编译后的exe程序怎样进行复制粘贴操作