【创作赢红包】你是真的“C”——C语言中文件操作函数使用的详细讲解【上篇】

简介: 为什么使用文件:🙌简单来说,文件的作用是:通过文件,可以让我们将数据保存在计算机硬盘上,使得我们的数据能够持久化的存储在我们的计算机上。

微信图片_20230427214238.gif

😎博客昵称:博客小梦

😊最喜欢的座右铭:全神贯注的上吧!!!

😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘

微信图片_20230427160707.gif

前言🙌


   哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享C语言中文件操作函数使用的详细讲解~ 都是精华内容,可不要错过哟!!!😍😍😍


一、 为什么使用文件:🙌


简单来说,文件的作用是:通过文件,可以让我们将数据保存在计算机硬盘上,使得我们的数据能够持久化的存储在我们的计算机上。


二、 什么是文件:🙌


磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种(从文件功能的角度来分类的):

  • 程序文件
  • 数据文件。


2.1 程序文件


包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境

后缀为.exe)。


2.2 数据文件


文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,

或者输出内容的文件。


2.3 文件名


一个文件要有一个唯一的文件标识,以便用户识别和引用。

文件名包含3部分:文件路径+文件名主干+文件后缀

c:\code\test.txt

为了方便起见,文件标识常被称为文件名。


3. 文件的打开和关闭


3.1 文件指针


   缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是由系统声明的,取名FILE.

   不同的C编译器的FILE类型包含的内容不完全相同,但是大同小异。每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者不必关心细节。一般都是通过一个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。

   定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变量)。通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到与它关联的文件。


3.2 文件的打开和关闭


文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。

ANSIC 规定使用fopen函数来打开文件,fclose来关闭文件。


//打开文件
FILE * fopen ( const char * filename, const char * mode );
//关闭文件
int fclose ( FILE * stream );


fopen 的第一个参数是要操作的文件名,第二个参数是指定文件打开的方式。

fclose 的参数指向要操作文件的FILE* 的指针。


举个栗子:

#include <stdio.h>
int main()
{
  FILE* pFile;
  //打开文件 - 写的形式打开
  pFile = fopen("myfile.txt", "w");
  //文件操作
  if (pFile == NULL)
  {
    perror("fopen");
    //关闭文件
    fclose(pFile);
    pFile = NULL;
    return 1;
  }
  // 使用文件
  //...........
  //关闭文件
  fclose(pFile);
  pFile = NULL;
  return 0;
}


已写(W)的形式打开文件,如果原来的该文件不存在,则会建立一个新的文件出来。没有报错,说明我们已经创建好了文件,并且正常打开和关闭文件。

微信图片_20230428184319.png


这里也出现了这个文件

微信图片_20230428184323.png


4. 文件的顺序读写


下面这张表格,都是一些比较常用的文件操作函数。

微信图片_20230428184401.png


4.1 三组函数:


scanf/fscanf/sscanf

printf/fprintf/sprintf


(1)scanf 和 printf


微信图片_20230428184431.png

微信图片_20230428184434.png

scanf 针对的是标准输入流(stdin)的格式化的输入函数;

printf 针对的是标准输出流(stdout)的格式化的输出函数;


(2)fscanf 和 fprintf


微信图片_20230428184541.png

微信图片_20230428184544.png

fscanf 针对的是所有输入流(文件流、stdin …)的格式化输入函数;

fprintf 针对的是所有输出流(文件流、stdout…)的格式化输出函数;

(3)sscanf 和 sprintf


微信图片_20230428184624.png微信图片_20230428184626.png


sscanf 把字符串转换成格式化的数据;

sprintf 把格式化的数据转化成字符串;


总结撒花💞


  本篇文章旨在分享C语言中文件操作函数使用的详细讲解【上篇】的相关知识点。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘


相关文章
|
10天前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
25 3
|
1天前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
17 10
|
5天前
|
存储 编译器 C语言
C语言函数的定义与函数的声明的区别
C语言中,函数的定义包含函数的实现,即具体执行的代码块;而函数的声明仅描述函数的名称、返回类型和参数列表,用于告知编译器函数的存在,但不包含实现细节。声明通常放在头文件中,定义则在源文件中。
|
11天前
|
C语言
c语言回顾-函数递归(上)
c语言回顾-函数递归(上)
27 2
|
15天前
|
存储 C语言
C语言文件操作(2)
【10月更文挑战第2天】
|
13天前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
16 3
|
13天前
|
程序员 编译器 C语言
C语言底层知识------文件操作
本文详细介绍了文件操作的基本概念,包括文件的分类(程序文件和数据文件,其中着重于数据文件的文本文件和二进制文件),流的概念及其在C程序中的应用,以及标准输入输出流stdin、stdout和stderr的作用。作者通过示例展示了如何使用fopen、fclose和常见的读写函数如fgetc、fputc和fgets进行文件操作。
14 2
|
16天前
|
存储 缓存 编译器
文件操作——C语言
文件操作——C语言
|
16天前
|
存储 程序员 编译器
C语言——动态内存管理与内存操作函数
C语言——动态内存管理与内存操作函数
|
16天前
|
C语言
C语言字符(串)函数
C语言字符(串)函数