C语言文件操作(文件读写)
文章目录
- 前言
- 一、文件
- 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语言文件操作(文件读写)相关推荐
- 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )
文章目录 一.追加键值对数据 二.更新键值对数据 三.完整代码示例 一.追加键值对数据 在上一篇博客 [C 语言]文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取 ...
- java流与文件——操作文件
[0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--操作文件 的相关知识: 0.2) for source code, please vi ...
- Linux——权限|shell运行原理——外壳程序|Linux权限的概念|对人操作|角色和文件操作|文件类型访问权限|修改权限ugo+-|8进制|修改权限|更改文件的拥有
目录 shell运行原理--外壳程序 Linux权限的概念 对人操作 角色和文件操作 文件类型
- 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 函数形参设置 | 确保打开文件成功 | 统计文件大小 )
文章目录 一.函数形参设置 二.确保打开文件成功 三.统计文件大小 一.函数形参设置 函数形参设置 : 该函数的作用是 写出或更新配置项 , 遍历每行数据 , 检查 key 键 是否存在 , 如果存在 ...
- Python基本语法_文件操作_读写函数详解
目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...
- golang 文件操作 创建 读写 复制移动 权限 删除
目录 介绍 基本操作 创建空文件 Truncate文件 得到文件信息 重命名和移动 删除文件 打开和关闭文件 检查文件是否存在 检查读写权限 改变权限.拥有者.时间戳 硬链接和软链接 读写 复制文件 ...
- 【C 语言】文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )
文章目录 一.导入第三方库头文件 二.头文件说明 1.兼容 C++ 语言 2.头文件导入限制 3.加密解密函数说明 一.导入第三方库头文件 对文件进行加密 , 将文件中的数据分成若干块 , 一块一块的 ...
- Python基础day07 作业解析【文件操作(文件读写、文件夹操作)】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day07[文件读写.文件夹操作.面向对象(类.对象)] 目录 加强训练 题目1 ...
- C文件操作、读写文件 C++文件读写、文件操作
转自 飘羽随风 基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之. 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FI ...
- 文件操作:读写模式、操作模式、操作方法
文件操作 补充储备 1.with语法支持一次性打开多个文件,需要用逗号隔开eg:with open(r'a.txt','r',encoding='utf8') as f1 , open(r'b.txt ...
最新文章
- 脚本中export不起作用的原因分析
- 卷积层计算量(FLOPS)和参数量的计算
- 【转载】给不同 type 的 input 自动设置样式
- 如何在linux环境下安装yaf
- 机器阅读(一)--整体概述
- Git 忽略编译后文件
- javaScript基本操作
- Java基础学习总结(67)——Java接口API中使用数组的缺陷
- 【持久化框架】Mybatis与Hibernate的详细对比
- 用ubuntu+Eclipse+PyDev制作第一个Django站点
- 解决安装VC2015失败的问题
- JavaScript是什么意思?
- Kconfig配置文件
- 二级下拉菜单布局(纵向、横向)
- ZYNQ入门,EBAZ4205开发平台从头开始搭建
- 【毕业设计】树莓派单片机墨水屏电子日历系统 - 物联网 嵌入式
- mac上使用qt,进行输入法的开发
- 嵌入式C语言编程规范
- java socket 加密,Java socket通信实现DES加密与解密
- git clone 使用源仓库换行符风格
热门文章
- python读取lmdb文件_LMDB文件读取器
- 坯子库无法一键安装插件没用_坯子插件库的下载地址、安装以及运用办法
- java设计模式之单例模式
- 精品化游戏《热血征途》掀起网页游戏大变革
- python全栈开发工程师_老男孩Python高级全栈开发工程师三期完整无加密带课件(共104天)...
- JavaScript 打开新页面
- C语言求质数的几种简单易懂方法
- 哈夫曼树的构造和哈夫曼编码实现详细讲解(含例题详细讲解)
- dbv mysql_mysql数据库版本控制dbv使用
- iOS模拟器找不到证书?