C语言--最常用的文件操作.

个人理解,若有错误请指出。
在我们操作文件之前,我们先简单了解一下文件。

文件:以计算机硬盘为载体存储在计算机上的信息集合。(注:每个文件都有自己的文件名,作为文件标识,以便使用和识别。)

例如:
         文件名 = 文件路径 + 文件名主干 + 文件后缀。
C语言--最常用的文件操作.
上图就是我打开的一个文件,并且分别标注了一个文件的各个部分。

文件类型:1.文本文件
                  2.二进制文件

  1. 二进制文件:简单来说,数据在内存中以二进制的形式储存,不加转换输出到外存中,就是二进制文件。(注:以记事本方式打开)

C语言--最常用的文件操作.
2. 文本文件:数据在内存中是二进制形式,在输出到外存时,用 ASCII 码进行转换之后,再输出到外存中,这就是文本文件。
C语言--最常用的文件操作.
两者直观上的区别:以记事本打开,能看懂的就是文本文件,看不懂的就是二进制文件。

        C 语言标准采用 “ 缓冲文件系统 " 来处理文件数据的。简单来说,文件缓冲系统为每一个正在执行的文件开辟一块 "文件缓冲区 "。当内存项磁盘输送数据时,先将数据储存到文件缓冲区,等到缓冲区 “装满” 时,一起将数据输送的磁盘中,同样地,从磁盘读取数据时,先将数据放到内存缓冲区等到 “装满” 时,一起将数据送到相应的内存中。当然,缓冲区的大小由 C 编译系统决定。

文件的常用基本操作:
1.文件打开
2.文件关闭
3.读文件
4.写文件

我们在进行文件操作的时候,都需要 C 语言的标准库来进行支持。标准库为我们提供了相关的函数来帮助我们完成文件的各个操作。

  1. 文件打开:
FILE * fopen ( const char * filename, const char * mode );
  1. 文件关闭:
int fclose ( FILE * stream );
  1. 读文件:
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
  1. 写文件:
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

(注:读文件,写文件的函数有好多种,我们在这里直说常用的方法)

下面为一些常用操作例子:

  1. 读文件:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
 char temp[1024] = {'\0'};   // 用来储存文件内的字符串。
 // 打开一个文件:(只读模式)
 FILE* fp = fopen("C:/Users/www18/Documents/记事本/文件操作.txt",
  "r");
 if (fp == NULL) {
  printf("打开失败!\n");
  ferror("Open failed\n"); // 输出失败原因(错误码)
 }
 // 读文件:
 fread(temp, 1, 1024, fp);
 printf("文件内容:%s\n", temp);
 // 关闭文件:
 fclose(fp);
 system("pause");
 return 0;
}

运行结果:
C语言--最常用的文件操作.

C语言--最常用的文件操作.
2. 写文件:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
 char temp[1024] = {'\0'};   // 用来储存输入的字符串。
 // 打开一个文件:(只写模式)
 FILE* fp = fopen("C:/Users/www18/Documents/记事本/文件操作.txt",
  "w");
 if (fp == NULL) {
  printf("打开失败!\n");
  ferror("Open failed\n"); // 输出失败原因(错误码)
 }
 // 写文件:
 printf("请输入需要写入的内容:\n");
 gets(temp);
 fwrite(temp, 1, 1024, fp);
 // 关闭文件:
 fclose(fp);
 system("pause");
 return 0;
}

运行结果:

C语言--最常用的文件操作.

C语言--最常用的文件操作.
以上两个例子为最常用的操作,其他关于文件的操作,以及其他函数的使用将会后续更新,请关注博客进行查看。

;