文章目录:

一:文件的打开(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函数)相关推荐

  1. Verilog中常见文件操作($readmemb,$fopen,$fwrite,$fclose)

    目录 一.$readmemb/$readmemh 二.$fopen,$fwrite,$fclose 三.仿真验证 四.参考 一.$readmemb/$readmemh $readmemb和$readm ...

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

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

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

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

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

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

  5. Linux C/C++编程: 文件操作open/close、fopen与freopen/fclose

    open是linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲. linxu下的fopen是open的封装函数,fopen最终还是要调用底层的系 ...

  6. VC 文件操作(文件查找,打开/保存,读/写,复制/删除/重命名)

    右击项目->属性->字符集:使用多字节字符集. 这样可以使用char到CString的转化. char sRead[20] = ""; CString strtest ...

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

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

  8. Visual C++网络编程经典案例详解 第8章 网络文件传输 使用api函数操作文件 操作文件 FlushFileBuffers函数

    如果想数据被立即写入文件所在的磁盘中 可以使用函数FlushFileBuffers() 将数据强制写入文件中 原型 BOOL FlushFileBuffers(HANDLE hFile); 函数唯一参 ...

  9. C语言-文件操作-文件打开方式

    文件打开方式 文件打开方式 文件打开方式由(r,w,a),(t,b),(+),三组字符各选其一拼成,(+)可选填 r :read,读,以只读的方式打开文件,文件必须存在! w :write,写,以只写 ...

最新文章

  1. 让我再撸一次HashMap
  2. phxpaxos编译示例
  3. python的对象模型_[ Python 源码剖析] 对象模型概述
  4. 云服务器 VNC 远程连接
  5. LeetCode 1691. 堆叠长方体的最大高度(排序+最大上升子序DP)
  6. 如何系统地自学python100天_如何系统地自学 Python?
  7. 让我们来谈谈合并排序算法
  8. 如何看待不会写代码的架构师?
  9. 设置角速度及生成四元数及利用刚体
  10. Luogu P2617 Dynamic Rankings
  11. mysql函数变量存储_MySQL存储过程、存储函数、变量
  12. knockoutjs三 text和apperance的绑定
  13. Feem(局域网文件传输工具)官方版
  14. 继电器学习笔记(一)继电器概念
  15. 台式计算机调亮度快捷键,台式电脑怎么调亮度快捷键(显示器亮度的调节方法)...
  16. 制表符输出语法分析器的格式
  17. 以数据为中心的云计算——阿里云OS浅谈
  18. 睿智的目标检测28——YoloV4当中的Mosaic数据增强方法
  19. 与其去雄安买房,不如找中企动力建自己的平台
  20. 中国古代美女才女不完全记录

热门文章

  1. “提离职后老板要给我加薪,我应该留下吗?”
  2. ubuntu 16.04升级python3后software updater打开错误
  3. 活动图当中的关键路径、点的最早开始时间最晚开始时间、活动的最长耽搁时间、最晚开工时间
  4. 种一棵树最好的时间,是十年前,其次是现在
  5. 【Nowcoder】2021牛客暑假集训营(第七场): xay loves trees 双指针 + 线段树 + 尺取
  6. 火星上的水来自哪里?宇宙撞击或许为其带来丰沛降水
  7. windows 下编译 DSview 记录
  8. Smba服务器的配置
  9. 深入了解超线程、双核CPU、双CPU与单CPU的区别
  10. LiDAR 完整指南介绍:激光探测和测距