一、输入输出相关的类

对以上数据流相关类的解读:
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++学习笔记(六)输入输出与文件读写相关推荐

  1. Go语言学习笔记(十八)之文件读写

    25.文件读写 1.文件打开和读 A.文件分类:文本和二进制文件 B.文件存取方式:随机存取和顺序存取 文件打开代码示例: 1: package main 2: 3: import ( 4: &quo ...

  2. Python学习笔记4——csv/excel文件读写保存

    工具包准备和设置检查 csv文件读写和保存 csv文件读写 csv文件保存 Excel工作表文件读写和保存 excel文件读写 excel文件保存 总结 附录代码 工具包准备和设置检查 相关工具包导入 ...

  3. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  4. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  5. 【K210】K210学习笔记六——MaixHub在线模型训练识别数字

    [K210]K210学习笔记六--MaixHub在线模型训练识别数字 前言 K210准备工作 数据的获取 MaixHub如何在线训练模型 训练模型在K210上的测试 小结 前言 本人大四学生,电赛生涯 ...

  6. Python的学习(十六):对文件的操作

    Python的学习(十六):对文件的操作 编码格式的介绍 Python中的解释器使用的是Unicode(内存) .py文件在磁盘上使用UTF-8存储(外存) 如何修改文件格式?不写的话默认为UTF-8 ...

  7. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

  8. 学习笔记之Ultrascale利用STARTUPE3读写BPI

    学习笔记之Ultrascale利用STARTUPE3读写BPI 1.简介 Ultrascale系列FPGA的DQ0~DQ3规划到了FPGA的专用BANK0上面,而在使用BPI加载模式时, FPGA配置 ...

  9. libevent学习笔记六:libevent核心事件event

    libevent学习笔记六:libevent核心事件event 前面对reactor模式.事件处理流程.libevent源代码结构等有了高层的认识后,接下来将详细介绍libevent的核心结构even ...

  10. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

最新文章

  1. 「2018山东一轮集训」 Tree
  2. Linux 环境 搭建Git 服务器,并且修改SSH端口使用
  3. php json解析教程,php解析json
  4. PowerShell~文件操作和对象遍历
  5. Linux系统编程6:入门篇之如何拿下gdb调试器?来和我一起调试一个程序
  6. linux处理制表文件,linux下PDF及表格处理软件
  7. python降维可视化 自编码_deep learning 自编码算法详细理解与代码实现(超详细)...
  8. python写xml文件_python写入xml文件的方法
  9. ESP32开发板开源啦 ESP32-IOT-KIT全开源物联网开发板
  10. 中国农业机械化行业市场供需与战略研究报告
  11. 【SDOI2008】【P1377】仪仗队
  12. 手游开发之lua的class函数详解
  13. c语言大作业图书馆,大一C语言课程设计—图书馆管理系统
  14. 云计算技术基础【9】
  15. P4684 [IOI2008]Fish(组合数学)
  16. java excel 插入新行_使用POI往EXCEL中插入行
  17. 文献检索与阅读技巧:如何高效的阅读和学习论文文献
  18. 为什么说真正的高手都有窄门思维?
  19. Glyph 8722 missing from current font, matplotlib画图
  20. Oracle完全卸载

热门文章

  1. WPF DataGrid自定义样式模板 列表头分隔线 滚动条滑块大小设定 动态数据绑定和更新
  2. 2005年,全国城市(实际建成区)面积排名
  3. CorelDRAW易拉宝设计
  4. Android GC 简史
  5. AutoCAD .Net 将当前用户坐标系(UCS)设置为世界坐标系(WCS)
  6. 【强化学习与机器人控制论文 3】基于强化学习的五指灵巧手玩转魔方
  7. 【报告分享】2020年双十一趋势洞察白皮书-凯度(附下载)
  8. Kali安装telnet
  9. 台式机性能超级计算机,超级计算机和普通个人计算机有什么区别?
  10. android如何定时息屏_手机息屏显示时间如何设置?其实息屏显示App也能帮你实现...