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

C++复习补充 IO

cin和cout

C++对cin和cout的使用类似于C语言scanf和printf的使用

if(cin.fail())
{cin.clear();//恢复置位//cin如何将缓冲区的多个字符读出来,因为类似scanf当cin>>i,i为整形时,缓冲区读到字符时。停止读入,字符仍然留在缓冲区里char ch=cin.peek();//读取缓冲区的一个字符但不取出while(!(ch>='0'&&ch<='9')){ch=cin.get();//取出cout<<ch;ch=cin.peek();//读取}cout<<endl;
}

一般情况下我们读到标志位置位的情况不会遇到fail()置位,往往是标准输入输出关闭会导致这样的情况

cout的刷新策略是行缓冲的,但在vs2022不论是pause,还是sleep,在这之前都会刷新。不知道是不是平台的原因

int main() {// 默认行缓冲:不刷新std::cout << "Start...";std::this_thread::sleep_for(std::chrono::seconds(20));  // 输出可能不会立即显示// 显式刷新std::cout << "\nContinue..." << std::flush;std::this_thread::sleep_for(std::chrono::seconds(2));  // 输出立即显示// 调用系统命令触发隐式刷新std::cout << "\nPress Enter to exit";system("pause");  // 隐式刷新,输出显示后再等待输入return 0;
}

cin和cout是关联的

cin和cout是关联的,也就是说一旦使用其中一个另一个就会立即刷新,我们可以通过cin.tie()返回绑定的流,或者cin.tie(nullptr)关闭关联,或者cin.tie(流)关联其他流。

文件IO

文件io继承了C语言的格式甚至说系统调用的格式,
ifstream(“1.txt”)默认以in的方式打开来读
ofstream(“1.txt”)默认以out的方式打开来读,会截断

除此之外还可以有各种组合包括ate,app,binary等

ate打开时定位,修改文件指针时写就不在重新定位到文件结尾
app写入时定位,修改文件指针不影响文件结尾

app阻止截断
ate不会影响是否截断

out|ate文件仍然会截断,要想不截断就得out|in|ate,但此时未见必须存在

继承

对iostream重载流提取符,fstream,stringstream都可以使用,因为它们是基类与子类的关系

stringstream

stringstream既可以读也可以写,不过读完写要clear一下否则读写会出错

http://www.xdnf.cn/news/3202.html

相关文章:

  • Nginx核心功能与LNMP部署
  • C语言Makefile编写与使用指南
  • 小米喷墨打印机Mi All-in-One Inkjet Printer电脑通过管理打印设备扫描文件方法完整记录
  • 「国产嵌入式仿真平台:高精度虚实融合如何终结Proteus时代?」——从教学实验到低空经济,揭秘新一代AI赋能的产业级教学工具
  • 使用O_DIRECT + 批量写数据到磁盘对丢包率的优化
  • Hanko:身份验证和用户管理解决方案,Clerk Auth0 的开源替代
  • [密码学实战]SDF之对称运算类函数(四)
  • 【缓冲区分析】叠加分析-要素叠加
  • Plesk 下的 IP 地址管理
  • MicroBlaze软核的开发使用
  • 分步详解:凤凰6000模拟器接入Unity Input System‌(
  • docker排查OOM Killer
  • SVN子路径权限设置及登录方法详解
  • docker学习笔记6-安装wordpress
  • AB3 有效括号序列
  • C++的vector中emplace_back() 与 push_back() 的区别
  • 新型电子式EDT-5土动三轴实验系统
  • NodeJS读写(同步异步、流式、分片策略)
  • CentOS环境下搭建seata(二进制、MySQL)
  • 安装deepspeed时出现了以下的错误,如何解决CUDA_HOME does not exist
  • vue3+flex动态的绘制蛇形时间轴
  • 远程桌面导致Quartus 破解失效
  • Silvaco仿真中的victory mesh
  • 【MySQL数据库】--1.安装教程
  • HHsuite同源序列搜索数据库构建
  • 如何在Windows中更改文档默认打开方式
  • 【保姆级教程-Centos7环境下部署Prometheus并设置开机自启】
  • 【Yolo精读+实践+魔改系列】Yolov2论文超详细精讲(翻译+笔记)
  • temu,shein采购测评避坑指南:如何避免砍单封号,实现长效运营?
  • Harbor默认Redis与Notary组件弱口令漏洞分析与修复指南