文章目录

  • 前言
  • 一、文件
    • 1.什么是文件?
    • 2.文件名
  • 二、文件的打开和关闭
    • 1.文件指针
    • 2.文件的打开与关闭
  • 三、文件的顺序读写
  • 总结

前言

本文主要介绍C语言中文件操作的相关内容(例:文件读、写等相关函数)。


一、文件

在对计算机的使用中我们几乎离不开文件。例如常见的有word 文档,txt文本文件,图片文件、音频文件等。

1.什么是文件?

文件是以计算机硬盘为载体存储在计算机上的信息集合。是数据源的一种,最主要的作用是保存数据。

在程序设计中,我们可将文件分为两大类:程序文件数据文件

(1)程序文件

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

(2)数据文件

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

2.文件名

文件名是文件存在的标识,操作系统根据文件名来对其进行控制和管理。每个文件都被设定一个指定的名称,由文件主名和扩展名组成。

即:一个文件要有一个唯一的文件标识,以便用户识别和引用。
文件名包含三个部分:文件路径+文件名主干+文件后缀
例:D:\Windows Kits\10\Lib\test.txt


二、文件的打开和关闭

1.文件指针

我们对文件进行一系列的操作——打开文件、关闭文件、向文件中写入数据、从文件中读出数据。所有的操作都离不开文件指针。

文件指针: FILE*
FILE:每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中,取名FILE。
FILE* :通过一个FILE的指针来维护这个FILE结构的变量,对文件进行操作。

FILE* pf;//文件指针变量

pf是一个指向FILE类型数据的指针变量。即通过文件指针变量能够找到与它关联的文件。

2.文件的打开与关闭

(1)fopen函数
在C语言中,操作文件之前应该先打开文件。使用 <stdio.h> 头文件中的 fopen() 函数可以打开文件。
用法如下:

//打开文件
FILE * fopen ( const char * filename, const char * mode );

第一个参数filename为文件名(包括文件路径),第二个参数mode为打开方式。若打开成功,fopen返回一个结构指针地址,否则返回NULL

如果没有指定文件路径,则默认为当前工作目录。
例:

//首先定义文件指针:fp
FILE *fp;
//用fopen()函数卡开文件, r——>以只读方式打开
fp = fopen("test.txt", "r"); //没有指定文件路径,则默认为当前工作目录。

(2)fclose函数
在执行完文件的操作后,要用 fclose() 函数进行“关闭文件”操作。以此释放相关资源,避免数据丢失。同时也可提高系统整体的执行效率。
fclose() 的用法为:int fclose(FILE *fp);

//fp 为文件指针,关闭文件代码如下:
fclose(fp);

关闭成功返回值0,否则返回非零值。

以下是文件的打开方式:


例:以只写方式打开 W

#include <stdio.h>
int main()
{FILE* pf;//打开文件pf = fopen("file1.txt", "w");//创建文件并进行判断if (pf != NULL){printf("打开文件成功!");//关闭文件fclose(pf);}return 0;
}


三、文件的顺序读写

打开文件后要对文件进行具体的操作,以下为文件的读写函数

功能 函数名
字符输入函数 fgetc
字符输出函数 fputc
文本行输入函数 gets
文本行输出函数 fputs
格式化输入函数 fscanf
格式化输出函数 fprintf
二进制输入 fread
二进制输出 fwrite

例:

#include <stdio.h>
int main()
{FILE* fp;fp = fopen("D:\\codeFile\\test1.txt", "r");if (fp != NULL){//feof(file stream )文件指针到达文件末尾while (!feof(fp)) //读文件printf("%c", fgetc(fp));}elseprintf("fail to open! \n");fclose(fp);return 0;
}

结果:(feof()函数检查文件是否读取完毕


总结

提示:以上就是本文是全部内容

C语言文件操作(文件读写)相关推荐

  1. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )

    文章目录 一.追加键值对数据 二.更新键值对数据 三.完整代码示例 一.追加键值对数据 在上一篇博客 [C 语言]文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取 ...

  2. java流与文件——操作文件

    [0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--操作文件 的相关知识: 0.2) for source code, please vi ...

  3. Linux——权限|shell运行原理——外壳程序|Linux权限的概念|对人操作|角色和文件操作|文件类型访问权限|修改权限ugo+-|8进制|修改权限|更改文件的拥有

    目录 shell运行原理--外壳程序 Linux权限的概念 对人操作 角色和文件操作 文件类型

  4. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 函数形参设置 | 确保打开文件成功 | 统计文件大小 )

    文章目录 一.函数形参设置 二.确保打开文件成功 三.统计文件大小 一.函数形参设置 函数形参设置 : 该函数的作用是 写出或更新配置项 , 遍历每行数据 , 检查 key 键 是否存在 , 如果存在 ...

  5. Python基本语法_文件操作_读写函数详解

    目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...

  6. golang 文件操作 创建 读写 复制移动 权限 删除

    目录 介绍 基本操作 创建空文件 Truncate文件 得到文件信息 重命名和移动 删除文件 打开和关闭文件 检查文件是否存在 检查读写权限 改变权限.拥有者.时间戳 硬链接和软链接 读写 复制文件 ...

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

    文章目录 一.导入第三方库头文件 二.头文件说明 1.兼容 C++ 语言 2.头文件导入限制 3.加密解密函数说明 一.导入第三方库头文件 对文件进行加密 , 将文件中的数据分成若干块 , 一块一块的 ...

  8. Python基础day07 作业解析【文件操作(文件读写、文件夹操作)】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day07[文件读写.文件夹操作.面向对象(类.对象)] 目录 加强训练 题目1 ...

  9. C文件操作、读写文件 C++文件读写、文件操作

    转自  飘羽随风 基于C的文件操作  在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之. 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FI ...

  10. 文件操作:读写模式、操作模式、操作方法

    文件操作 补充储备 1.with语法支持一次性打开多个文件,需要用逗号隔开eg:with open(r'a.txt','r',encoding='utf8') as f1 , open(r'b.txt ...

最新文章

  1. 脚本中export不起作用的原因分析
  2. 卷积层计算量(FLOPS)和参数量的计算
  3. 【转载】给不同 type 的 input 自动设置样式
  4. 如何在linux环境下安装yaf
  5. 机器阅读(一)--整体概述
  6. Git 忽略编译后文件
  7. javaScript基本操作
  8. Java基础学习总结(67)——Java接口API中使用数组的缺陷
  9. 【持久化框架】Mybatis与Hibernate的详细对比
  10. 用ubuntu+Eclipse+PyDev制作第一个Django站点
  11. 解决安装VC2015失败的问题
  12. JavaScript是什么意思?
  13. Kconfig配置文件
  14. 二级下拉菜单布局(纵向、横向)
  15. ZYNQ入门,EBAZ4205开发平台从头开始搭建
  16. 【毕业设计】树莓派单片机墨水屏电子日历系统 - 物联网 嵌入式
  17. mac上使用qt,进行输入法的开发
  18. 嵌入式C语言编程规范
  19. java socket 加密,Java socket通信实现DES加密与解密
  20. git clone 使用源仓库换行符风格

热门文章

  1. python读取lmdb文件_LMDB文件读取器
  2. 坯子库无法一键安装插件没用_坯子插件库的下载地址、安装以及运用办法
  3. java设计模式之单例模式
  4. 精品化游戏《热血征途》掀起网页游戏大变革
  5. python全栈开发工程师_老男孩Python高级全栈开发工程师三期完整无加密带课件(共104天)...
  6. JavaScript 打开新页面
  7. C语言求质数的几种简单易懂方法
  8. 哈夫曼树的构造和哈夫曼编码实现详细讲解(含例题详细讲解)
  9. dbv mysql_mysql数据库版本控制dbv使用
  10. iOS模拟器找不到证书?