C文件操作——文件的打开(fopen函数)和关闭(fclose函数)
文章目录:
一:文件的打开(fopen函数)
1.语法
2.参数
3.返回值
4.代码实现
二:文件的关闭(fclose函数)
1.语法
2.参数
3.返回值
4.代码实现
一:文件的打开(fopen函数)
fopen 函数用于打开一个文件并返回文件指针
1.语法
#include <stdio.h> ... FILE *fopen(const char *path, const char *mode);函数调用:FILE *fp;fp = fopen(文件名,使用文件方式);注意:需要打开的文件名,也就是准备访问的文件的名字使用文件的方式(“读”还是“写”等);让哪一个指针变量指向被打开的文件。
1. path 参数可以是相对路径(../fishc.txt)也可以是绝对路径(/home/FishC/fishc.txt)如果只给出文件名而不包含路径,则表示该文件在当前文件夹中2. 从本质上来说,文本文件也是属于二进制文件的,只不过它存放的是相应的字符编码值。3. 打开方式要区分文本模式和二进制模式的原因,主要是因为换行符的问题C 语言用 \n 表示换行符,Unix 系统用 \n,Windows 系统用 \r\n,Mac 系统则用 \r。如果在 Windows 系统上以文本模式打开一个文件从文件读到的 \r\n 将会自动转换成 \n而写入文件则将 \n 替换为 \r\n。但如果以二进制模式打开则不会做这样的转换。Unix 系统的换行符跟 C 语言是一致的,所以不管以文本模式打开还是二进制模式打开,结果都是一样的。
2.参数
参数
含义
path 该参数是一个 C 语言字符串,指定了待打开的文件路径和文件名(见备注) mode 1. 该参数是一个 C 语言字符串,指定了文件的打开模式 2. 下面列举了所有可使用的打开模式:
模式
描述
"r" 1. 以只读的模式打开一个文本文件,从文件头开始读取
2. 该文本文件必须存在"w" 1. 以只写的模式打开一个文本文件,从文件头开始写入
2. 如果文件不存在则创建一个新的文件
3. 如果文件已存在则将文件的长度截断为 0(重新写入的内容将覆盖原有的所有内容)"a" 1. 以追加的模式打开一个文本文件,从文件末尾追加内容
2. 如果文件不存在则创建一个新的文件"r+" 1. 以读和写的模式打开一个文本文件,从文件头开始读取和写入
2. 该文件必须存在
3. 该模式不会将文件的长度截断为 0(只覆盖重新写入的内容,原有的内容保留)"w+" 1. 以读和写的模式打开一个文本文件,从文件头开始读取和写入
2. 如果文件不存在则创建一个新的文件
3. 如果文件已存在则将文件的长度截断为 0(重新写入的内容将覆盖原有的所有内容)"a+" 1. 以读和追加的模式打开一个文本文件
2. 如果文件不存在则创建一个新的文件
3. 读取是从文件头开始,而写入则是在文件末尾追加"b" 1. 与上面 6 中模式均可结合("rb", "wb", "ab", "r+b", "w+b", "a+b")
2. 其描述的含义一样,只不过操作的对象是二进制文件(见备注)
3.返回值
1. 如果文件打开成功,则返回一个指向 FILE 结构的文件指针;2. 如果文件打开失败,则返回 NULL 并设置 errno(-1) 为指定的错误。
4.代码实现
#include <stdio.h> #include <stdlib.h>int main(void) {FILE *fp;int ch;if ((fp = fopen("hello.txt", "r")) == NULL){printf("打开文件失败!\n");exit(EXIT_FAILURE);}while ((ch = getc(fp)) != EOF){putchar(ch);}fclose(fp);return 0; }
二:文件的关闭(fclose函数)
fclose 函数用于关闭先前由 fopen 函数打开的文件。
fclose 函数会将缓冲区内的数据写入文件中,并释放系统所提供的文件资源。
1.语法
#include <stdio.h> ... int fclose(FILE *fp);
磁盘已满、设备出错或者 I/O 错误均可能导致 fclose 函数调用失败
2.参数
参数
含义
fp 指向一个待关闭的文件指针
3.返回值
1. 如果文件关闭成功,返回值是 0;2. 如果文件关闭失败,返回值是 EOF(-1),并设置 errno 为指定的错误。
4.代码实现
#include <stdio.h> #include <stdlib.h>int main(void) {FILE *fp;int ch;if ((fp = fopen("hello.txt", "r")) == NULL){printf("打开文件失败!\n");exit(EXIT_FAILURE);}while ((ch = getc(fp)) != EOF){putchar(ch);}fclose(fp);return 0; }
C文件操作——文件的打开(fopen函数)和关闭(fclose函数)相关推荐
- Verilog中常见文件操作($readmemb,$fopen,$fwrite,$fclose)
目录 一.$readmemb/$readmemh 二.$fopen,$fwrite,$fclose 三.仿真验证 四.参考 一.$readmemb/$readmemh $readmemb和$readm ...
- Python基础day07 作业解析【文件操作(文件读写、文件夹操作)】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day07[文件读写.文件夹操作.面向对象(类.对象)] 目录 加强训练 题目1 ...
- java流与文件——操作文件
[0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--操作文件 的相关知识: 0.2) for source code, please vi ...
- Linux——权限|shell运行原理——外壳程序|Linux权限的概念|对人操作|角色和文件操作|文件类型访问权限|修改权限ugo+-|8进制|修改权限|更改文件的拥有
目录 shell运行原理--外壳程序 Linux权限的概念 对人操作 角色和文件操作 文件类型
- Linux C/C++编程: 文件操作open/close、fopen与freopen/fclose
open是linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲. linxu下的fopen是open的封装函数,fopen最终还是要调用底层的系 ...
- VC 文件操作(文件查找,打开/保存,读/写,复制/删除/重命名)
右击项目->属性->字符集:使用多字节字符集. 这样可以使用char到CString的转化. char sRead[20] = ""; CString strtest ...
- 【C 语言】文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )
文章目录 一.导入第三方库头文件 二.头文件说明 1.兼容 C++ 语言 2.头文件导入限制 3.加密解密函数说明 一.导入第三方库头文件 对文件进行加密 , 将文件中的数据分成若干块 , 一块一块的 ...
- Visual C++网络编程经典案例详解 第8章 网络文件传输 使用api函数操作文件 操作文件 FlushFileBuffers函数
如果想数据被立即写入文件所在的磁盘中 可以使用函数FlushFileBuffers() 将数据强制写入文件中 原型 BOOL FlushFileBuffers(HANDLE hFile); 函数唯一参 ...
- C语言-文件操作-文件打开方式
文件打开方式 文件打开方式 文件打开方式由(r,w,a),(t,b),(+),三组字符各选其一拼成,(+)可选填 r :read,读,以只读的方式打开文件,文件必须存在! w :write,写,以只写 ...
最新文章
- 让我再撸一次HashMap
- phxpaxos编译示例
- python的对象模型_[ Python 源码剖析] 对象模型概述
- 云服务器 VNC 远程连接
- LeetCode 1691. 堆叠长方体的最大高度(排序+最大上升子序DP)
- 如何系统地自学python100天_如何系统地自学 Python?
- 让我们来谈谈合并排序算法
- 如何看待不会写代码的架构师?
- 设置角速度及生成四元数及利用刚体
- Luogu P2617 Dynamic Rankings
- mysql函数变量存储_MySQL存储过程、存储函数、变量
- knockoutjs三 text和apperance的绑定
- Feem(局域网文件传输工具)官方版
- 继电器学习笔记(一)继电器概念
- 台式计算机调亮度快捷键,台式电脑怎么调亮度快捷键(显示器亮度的调节方法)...
- 制表符输出语法分析器的格式
- 以数据为中心的云计算——阿里云OS浅谈
- 睿智的目标检测28——YoloV4当中的Mosaic数据增强方法
- 与其去雄安买房,不如找中企动力建自己的平台
- 中国古代美女才女不完全记录
热门文章
- “提离职后老板要给我加薪,我应该留下吗?”
- ubuntu 16.04升级python3后software updater打开错误
- 活动图当中的关键路径、点的最早开始时间最晚开始时间、活动的最长耽搁时间、最晚开工时间
- 种一棵树最好的时间,是十年前,其次是现在
- 【Nowcoder】2021牛客暑假集训营(第七场): xay loves trees 双指针 + 线段树 + 尺取
- 火星上的水来自哪里?宇宙撞击或许为其带来丰沛降水
- windows 下编译 DSview 记录
- Smba服务器的配置
- 深入了解超线程、双核CPU、双CPU与单CPU的区别
- LiDAR 完整指南介绍:激光探测和测距