C++学习笔记(六)输入输出与文件读写
一、输入输出相关的类
对以上数据流相关类的解读:
istream用于输入的流类,cin是这类的对象
ostream用于输出的流类,cout是这类的对象
ifstream 用于文件读取数据的流类
ofstream用于文件写入数据的流类
iostream是既能用于输入,用于输出的类
fstream是既能从文件读取数据,也能用于文件写入数据。
1、cin,cout对应标准输入输出流
2、判断输入流结束:
(1)、如果从文件输入
freopen(“some.txt”,“r”,stdin);
那么,读到文件尾部,输入流就算结束
(2)、如果是从键盘输入,则在单独一行输入ctrl+z代表输入流结束
3、接下来介绍istream类的成员函数(个人观点,不要背,记得有这么回事,需要的时候文档)
(1)、读取输入流
istream & getline(char * buf,int bufSize)
在输入流中读取bufSize-1个字符到缓冲区buf,或读到"\n"为止
istream & getline(char * buf,int bufSize, char delim = “\n”)
在输入流中读取bufSize-1个字符到缓冲区buf,或读到delim字符为止。
两个函数都会自动在buf中读入数据结尾添加"\0"。"\n"或delim不会读入buf,但会从输入流中取走。
可以用if(!cin.getline(…))来判断输入是否结束
bool eof()判断输入流是否结束
int peek()返回下一个字符,但不从流中去掉
istream & putback(char c)将字符c放回输入流
istream & ignore(int nCount = 1, int delim = EOF)从流中删除掉最多nCount个字符,遇到EOF时结束
二、文件输入输出操作
1、可以将顺序文件看做一个优先字符构成的顺序字符流,然后像对cin,cout一样的读写
2、创建文件
ofstream outFile("test.txt",ios::out|ios::binary)
test.txt 要创建的文件的名字
ios::out 文件打开方式:
ios::out 输出到文件,删除原有内容
ios::app 输出到文件,在原有内容尾部添加
ios::binary 以二进制文件格式打开文件
也可以先创建ofstream对象,再用open函数打开
ofstream fout;
fout.open(“test.txt”, ios::out|ios::binary)
判断打开是否成功
if(!fout)
{
cout<<“File out error”<<endl;
}
文件名可以给出绝对路径,也可给相对路径。没有说路径信息,就是当前文件夹下找文件。
3、文件的读写指针:
(1)、对于输入文件,有一个读指针
(2)、对于输出文件,有一个写指针
(3)、对于输入输出文件,有一个读写指针
(4)、标识文件操作的当前位置,该指针在哪里,读写操作就在哪里进行。
例子:
ofstream fout("test.txt", ios::app);
long location = fout.tellp(); // 取得写指针的位置
location = 10;
fout.seekp(location); // 将写指针移动到第十个字节
fout.seekp(location, ios::beg) // 从第十个指针头数location个字节
fout.seekp(location, ios::cur) // 从当前位置数location个字节
fout.seekp(location, ios::beg) // 从尾部数location个字节 location可为负值
文件就是读写操作
4、二进制文件读写
read,write函数
二进制文件和文本文件的区别
linux下换行符是"\n"
window下换行符是"\r\n"
MacOS下换行符是"\r"
liunx下打开文件,用不用ios::binary没区别
windows下打开文件,如果不用ios::binary则:读取二进制文件时,所有"\r\n"会被当做"\n"处理
写入二进制文件时,写入单独的"\n",系统会自动在前加一个"\r"
C++学习笔记(六)输入输出与文件读写相关推荐
- Go语言学习笔记(十八)之文件读写
25.文件读写 1.文件打开和读 A.文件分类:文本和二进制文件 B.文件存取方式:随机存取和顺序存取 文件打开代码示例: 1: package main 2: 3: import ( 4: &quo ...
- Python学习笔记4——csv/excel文件读写保存
工具包准备和设置检查 csv文件读写和保存 csv文件读写 csv文件保存 Excel工作表文件读写和保存 excel文件读写 excel文件保存 总结 附录代码 工具包准备和设置检查 相关工具包导入 ...
- ROS学习笔记六:理解ROS服务和参数
ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...
- opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制
图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...
- 【K210】K210学习笔记六——MaixHub在线模型训练识别数字
[K210]K210学习笔记六--MaixHub在线模型训练识别数字 前言 K210准备工作 数据的获取 MaixHub如何在线训练模型 训练模型在K210上的测试 小结 前言 本人大四学生,电赛生涯 ...
- Python的学习(十六):对文件的操作
Python的学习(十六):对文件的操作 编码格式的介绍 Python中的解释器使用的是Unicode(内存) .py文件在磁盘上使用UTF-8存储(外存) 如何修改文件格式?不写的话默认为UTF-8 ...
- Java学习笔记 六、面向对象编程中级部分
Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...
- 学习笔记之Ultrascale利用STARTUPE3读写BPI
学习笔记之Ultrascale利用STARTUPE3读写BPI 1.简介 Ultrascale系列FPGA的DQ0~DQ3规划到了FPGA的专用BANK0上面,而在使用BPI加载模式时, FPGA配置 ...
- libevent学习笔记六:libevent核心事件event
libevent学习笔记六:libevent核心事件event 前面对reactor模式.事件处理流程.libevent源代码结构等有了高层的认识后,接下来将详细介绍libevent的核心结构even ...
- [python教程入门学习]python学习笔记(CMD执行文件并传入参数)
本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...
最新文章
- 「2018山东一轮集训」 Tree
- Linux 环境 搭建Git 服务器,并且修改SSH端口使用
- php json解析教程,php解析json
- PowerShell~文件操作和对象遍历
- Linux系统编程6:入门篇之如何拿下gdb调试器?来和我一起调试一个程序
- linux处理制表文件,linux下PDF及表格处理软件
- python降维可视化 自编码_deep learning 自编码算法详细理解与代码实现(超详细)...
- python写xml文件_python写入xml文件的方法
- ESP32开发板开源啦 ESP32-IOT-KIT全开源物联网开发板
- 中国农业机械化行业市场供需与战略研究报告
- 【SDOI2008】【P1377】仪仗队
- 手游开发之lua的class函数详解
- c语言大作业图书馆,大一C语言课程设计—图书馆管理系统
- 云计算技术基础【9】
- P4684 [IOI2008]Fish(组合数学)
- java excel 插入新行_使用POI往EXCEL中插入行
- 文献检索与阅读技巧:如何高效的阅读和学习论文文献
- 为什么说真正的高手都有窄门思维?
- Glyph 8722 missing from current font, matplotlib画图
- Oracle完全卸载
热门文章
- WPF DataGrid自定义样式模板 列表头分隔线 滚动条滑块大小设定 动态数据绑定和更新
- 2005年,全国城市(实际建成区)面积排名
- CorelDRAW易拉宝设计
- Android GC 简史
- AutoCAD .Net 将当前用户坐标系(UCS)设置为世界坐标系(WCS)
- 【强化学习与机器人控制论文 3】基于强化学习的五指灵巧手玩转魔方
- 【报告分享】2020年双十一趋势洞察白皮书-凯度(附下载)
- Kali安装telnet
- 台式机性能超级计算机,超级计算机和普通个人计算机有什么区别?
- android如何定时息屏_手机息屏显示时间如何设置?其实息屏显示App也能帮你实现...