c++(26) 输入输出流、文件操作

2023-11-14

1、cout、cin标准输入输出流

cin会创建一个输入缓冲区,键盘向屏幕输入字符的时候,会将数据放进缓冲区。如果缓冲区内没有数据,则会阻塞等待键盘输入。

同样的cout也会有自己的缓冲区,在有的linux编译器下,cout<<"hello world~"<<endl;时,会先将数据放到缓冲区内,收到endl的时候,会将字符输出到屏幕。

除了cout,还有cerr、和clog是没有缓冲区的标准错误,也是输出字符串。

cin.pee();返回第一个字符,但是不从缓冲区取走。可以用于判断,接下来键盘输入的是数字还是字符,或者ascll的其他特殊字符。

 cin.ignore(),表示从缓冲区忽略(并取走一个字符)

cin.putback();重新把数据扔回缓冲区的原有位置。

2、cout格式化输出

我们知道在c语言中,有%d, %s等格式换输出。cout也可以完成格式化输出。

cout格式化输出,有一种比价繁琐的方式

还有通过控制符的方法

 3、文件读写

 

 

#include <iostream>
#include <cstring>
#include <memory>
#include <stdexcept>
#include <fstream>  //文件操作
using namespace std;

int main(void)
{	
	//文本文件读写
	char *sourcefile = "./source.txt";
	char *outfile = "./out.txt";
	ifstream ism(sourcefile, ios::in); //制度方式打开
	if(!ism)
	{
		cout<<"打开"<<sourcefile<<"文件失败"<<endl;
	}
	
	ofstream osm(outfile, ios::out);//默认就是文本模式
	if(!osm)
	{
		cout<<"打开"<<outfile<<"文件失败"<<endl;
	}
	
	//读文件
	char ch;
	while (ism.get(ch))
	{
		osm.put(ch);
	}
	
	//关闭文件
	ism.close();
	osm.close();
	
	//--------------------------------
	//二进制文件读写
	//ofstream osm(outfile, ios::out | ios::binary);//默认就是文本模式
	
	return 0;
}


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++(26) 输入输出流、文件操作 的相关文章

随机推荐

  • 文本AI3.5的安装和基本用法:轻松掌握

    PC端 1 首先打开Edge浏览器 这个浏览器是windows系统自带的 2 打开扩展管理 gt 查找新的扩展 查找新的扩展 3 输入 侧边栏 国内免费使用 进行搜索 gt 安装 下载后记得要跟上图一下将插件的开关按钮打开 4 简单的使用
  • Java 如何实现 List<String> 的深拷贝?

    对于 List
  • ChatGPT常用指令大全,带你学习ChatGPT

    ChatGPT是一种自然语言处理技术 可以模拟人类对话并回答问题 在使用ChatGPT时 您需要了解一些常用的指令和命令 以便更好地控制ChatGPT的行为和输出 以下是常用的ChatGPT指令大全 手机端示意图 名片交流探讨更多指令与学习
  • 第 46 届世界技能大赛浙江省选拔赛“网络安全“项目C模块任务书

    第46届世界技能大赛浙江省选拔赛 网络安全 项目C模块 夺旗行动 CTF 挑战 第46届世界技能大赛浙江省选拔赛 网络安全 项目C模块 第一部分 WEB 第二部分 CRYPTO 第三部分 REVERSE 第四部分 MISC 第五部分 PWN
  • uniapp 返回上一页并传参

    a页面跳转到b页面 但是b页面需要传值给a页面的操作 方法一 a页面跳转到 b 的方法 onShow uni on update data gt console log data name 张三 console log data age 1
  • 关于PHP的命名空间

    http www php cn php weizijiaocheng 392925 html
  • yolov3项目实战——基于PyTorch实现的目标检测项目实战(附代码)

    一 数据准备 数据准备见 使用精灵标注助手制作yolov3训练数据集 附解析xml代码 本篇文章为项目实战部分 理论部分简析见 YoLov1 YoLov3演变历程 思维导图 二 项目代码部分 1 cfg py CLASS NUM 10 an
  • 技术可行性

    什么是技术可行性 1 技术可行性是指决策的技术和决策方案的技术不能突破组织所拥有的或有关人员所掌握的技术资源条件的边界 编辑
  • db2锁表后如何解锁_DB2死锁的解决过程全记录

    生产环境里使用的数据库是DB2 但是最近频繁出现一个奇怪的死锁现象 某一个select sql 语句总是会出现死锁 按照以往的经验 通常都是update delete之类的更新sql语句会出现死锁的问题 而且这个 select sql 语句
  • Flutter仿抖音点击进入直播间按钮动画实现

    利用flutter仿抖音点击进入直播间动画效果 效果图 对于这个widget 已经封装成插件 供大家依赖使用 askai animation button last version 组件的一些必选属性 const KaiAnimationB
  • Flink 1.17教程:聚合算子(Aggregation)之按键分区(keyBy)

    聚合算子 Aggregation 计算的结果不仅依赖当前数据 还跟之前的数据有关 相当于要把所有数据聚在一起进行汇总合并 这就是所谓的 聚合 Aggregation 类似于MapReduce中的reduce操作 按键分区 keyBy 对于F
  • 【批处理DOS-CMD命令-汇总和小结】-变量嵌套和命令嵌套

    参考来源 DOS 变量嵌套和命令嵌套 阿飞同学 博客园 bat脚本的基本命令语法 整合侠 博客园 一 什么是变量嵌套 命令嵌套 1 1 介绍一下字符串截取的知识 对于字符串变量A 要截取它的片段 语法是 A1 A m n 例如对于字符串变量
  • uni-app运行到微信开发者工具-没有打印的情况

    前言 到我们进场使用微信开发者工具时 就会发现它经常会有bug 特别是在软件更新 组件库更新之后 最近在更新微信开发者工具之后发现所有打印都不显示了 虽然是小问题 但对于强迫症很烦 以为是代码配置问题 结果是更新之后打印开关开启不打印 查看
  • MCLDownload文件夹转移位置方法

    由于部分玩家电脑C盘容量不是很足 或者由于启动器1 4 0升级的bug 抑或是强迫症所迫等等等等 总之想给 MCLDownload 文件夹路径来个 定制化 所以接下来有两种方法修改 MCLDownload 文件夹的路径 请先退出启动器 gt
  • 【PTA】计算职工工资 (15分)

    给定N个职员的信息 包括姓名 基本工资 浮动工资和支出 要求编写程序顺序输出每位职员的姓名和实发工资 实发工资 基本工资 浮动工资 支出 输入格式 输入在一行中给出正整数N 随后N行 每行给出一位职员的信息 格式为 姓名 基本工资 浮动工资
  • 43岁读博士,无关年龄

    本文来源 西湖大学WestlakeUniversity 2017年 鲍光胜和女儿在英国 这一年他决定读博士 为此他准备了5年 鲍光胜还是被媒体围住了 在西湖大学博士生开学典礼上 他微笑着回答了每一个问题 在视频发布后的评论区 有人说他看上去
  • Idea之单元测试覆盖率

    Idea之单元测试覆盖率 创建接口 参加测试类 点击Run xxx with Coverage 在运行完毕后 就会出现Coverage窗口 在窗口中就能看到关于覆盖率的内容 如果需要达到更高的覆盖率 将if的每一个分支都测试一遍
  • Win7下使用Putty代替超级终端通过COM串口连接开发板方法

    1 如果电脑 笔记本 没有串口接口 则需要使用一个 USB Serial 转换线 这里使用 prolific usb serial USB 串口转换线 首先需要在win7上安装对应的 USB 串口转换线 驱动程序 PL2303 Prolif
  • 《Android 开发艺术探索》笔记5--View工作原理

    View工作原理思维导图 ViewRoot和DecorView MeasureSpec 理解MeasureSpec MeasureSpec和LayoutParams关系 View的工作流程 measure过程 正确获取宽高方法 layout
  • c++(26) 输入输出流、文件操作

    1 cout cin标准输入输出流 cin会创建一个输入缓冲区 键盘向屏幕输入字符的时候 会将数据放进缓冲区 如果缓冲区内没有数据 则会阻塞等待键盘输入 同样的cout也会有自己的缓冲区 在有的linux编译器下 cout lt lt he