当前位置: 首页 > news >正文

【C++】输入输出流 ⑩ ( 文件流 | 文件流打开方式参数 | 文件指针 | 组合打开方式 | 文件打开失败 )

文章目录

  • 一、文件流打开方式参数
    • 1、文件流打开方式参数
    • 2、文件指针
    • 3、组合打开方式
    • 4、文件打开失败






一、文件流打开方式参数




1、文件流打开方式参数


文件流打开方式参数 :

  • ios::in : 以只读方式打开文件 ;
  • ios::out : 以只写方式打开文件 , 默认打开方式 , 如果文件已存在则清空文件内容重新写入 ;
  • ios::in | ios::out : 以 输入 和 输出 的方式打开文件 , 即可以读取数据 , 又可以写出数据 ;
  • ios::app : 以追加方式打开文件 , 即在文件末尾添加内容 ;
  • ios::ate : 打开已有文件 , 文件指针指向文件末尾 ;
  • ios::binary : 以二进制方式打开文件 ; 默认是 ASCII 码方式打开 ;
  • ios::in | ios::binary : 以 二进制形式 打开输入文件 ;
  • ios::out | ios::binary : 以 二进制形式 打开输出文件 ;
  • ios::trunc : 如果文件已经存在 , 则先删除文件内容 , 再打开文件进行写入 ;
  • ios::nocreate : 不创建新文件的前提下打开已有文件 , 即 : 如果文件不存在 , 打开失败 ; ( 新版本 I/O 库中没有该打开方式 )
  • ios::noreplace : 不更新原有文件的前提下打开文件 , 即 : 如果文件不存在则创建文件 , 如果文件已存在则打开失败 ; ( 新版本 I/O 库中没有该打开方式 )

代码示例 :

// 以只读方式打开文件  
ifstream fin("1.txt", ios::in); // 以只写方式打开文件 并在文件末尾添加内容  
ofstream fout("1.txt", ios::out | ios::app);// 以读写方式打开文件 并在文件末尾添加内容 
fstream fs("1.txt", ios::in | ios::out | ios::app); 

2、文件指针


文件指针引入 : 使用 输入 / 输出 文件流 打开文件后 , 都有一个文件指针 指向 默认的 文件位置 ;

文件指针作用 : 文件 输入 / 输出 流对象 , 每次读写数据 , 都从 文件指针 指向的位置开始 , 以 文件读取 为例 , 每读取一个字节 , 文件指针就向后移动一个字节 , 如果文件指针移动到文件末尾 , 就会遇到文件结束符 EOF , EOF 全称 End Of File , 值为 -1 ;

文件指针初始位置 : 不同的打开方式 , 对应的 文件指针 初始位置 , 是不同的 , 如 : ios::ate 打开方式打开的文件 , 文件指针默认指向文件末尾 ;


3、组合打开方式


如果想要同时使用 多种打开方式 , 由于 打开方式 只有一个参数位置 , 这里使用 位运算符 | 对 多个 打开方式进行组合 , 如 :

  • ios::in | ios::out : 以 输入 和 输出 的方式打开文件 , 即可以读取数据 , 又可以写出数据 ;
  • ios::in | ios::binary : 以 二进制形式 打开输入文件 ;
  • ios::out | ios::binary : 以 二进制形式 打开输出文件 ;
  • ios::in l ios::out I ios::binary : 以 二进制形式 打开 输入 和 输出 文件 ;

特别注意 : 相互排斥的方式 , 不能进行组合 , 如 : ios::nocreate l ios::noreplace ;


4、文件打开失败


调用 文件输入输出流 的 open() 函数 , 可能会打开失败 , 如果打开失败 , open() 函数返回 0 值 ;

	// 创建 文件输入流 对象 并打开// 1. 首先 , 创建 文件输入流 对象// 2. 然后 , 文件流对象的 open 函数打开文件ifstream fin;if ( fin.open("1.txt", ios::in) == 0 )cout <<"文件打开错误";

在 文件输入输出流对象 的 构造函数 中直接打开文件 , 如果打开失败 , 则创建 文件输入输出流对象 失败 , 创建的对象值为 0 ;

	// 创建 文件输出流 对象// 1. 与 1.txt 文件关联// 2. 设置 访问方式 为 输出数据到文件中ofstream fout("1.txt", ios::out);if ( fout == 0 )cout <<"文件打开错误";
http://www.lryc.cn/news/260999.html

相关文章:

  • React中的setState执行机制
  • LabVIEW实时建模检测癌细胞的异常
  • Python卡尔曼滤波器OpenCV跟踪和预测物体的轨迹
  • LeetCode Hot100 25.K个一组翻转链表
  • 中职网络安全应急响应—Server2228
  • springboot 获取路径
  • C#上位机与欧姆龙PLC的通信01----项目背景
  • SE考研真题总结(二)
  • vue中预览pdf的方法
  • 详谈前端中常用的加/密算法
  • 宣布全面推出适用于 macOS 的 Amazon EC2 M2 Pro Mac 实例
  • 【记录版】SpringBoot下Filter注册源码解读
  • WPF的WebBrowser控件
  • WX小程序案例(一):弹幕列表
  • 基于ssm医用物理学实验考核系统论文
  • 鸿蒙HarmonyOS4.0 入门与实战
  • 论文阅读——GroupViT
  • 时光机器:用rrweb打造可回溯的用户体验!
  • 不同的葡萄品种的葡萄酒有什么共同特质?
  • Visual Studio编辑器中C4996 ‘scanf‘: This function or variable may be unsafe.问题解决方案
  • C与C++编程语言的区别和联系
  • UE4 UMG 颜色字体和PS对应关系
  • EasyExcel处理表头的缓存设置
  • 数据挖掘任务一般流程
  • 人工智能计算机视觉:解析现状与未来趋势
  • 5.1 C++11强类型枚举
  • Android : BottomNavigation底部导航_简单应用
  • 基于ssm培训学校教学管理平台论文
  • 关于嵌入式开发的一些信息汇总:C标准、芯片架构、编译器、MISRA-C
  • java实现局域网内视频投屏播放(二)爬虫