C++IO流 艰难抉择 10

C++:C++的IO流 一篇带你完全掌握C++的IO流 阅读详情

C++IO流

流: 若干字节数据从一端到另一端我们叫做流

流类体系

  • 流对象
  • 流运算符:
  •                        <<:向左流入
    
  •                        >>: 向右流出
    

输出输出流

  • ostream类
    << 重定向:输入输出定向为文件
    • cout :标准输出 可以重定向
    • cerr :标准错误输出 不能重定向
    • clog :标准错误输出 重定向为文件
    • cin : 标准输入
#include"iostream"
#include"cstdio"
using namespace std;
void testiostream()
{
	cout << "标准输出" << endl; //重定向
	cerr << "标准错误输出" << endl; //不能重定向
	clog << "标准错误输出" << endl;////重定向为文件

}
void freopeniostream()
{
	freopen("1.txt", "r", stdin);// 把基本输入定向为输入文件
	int a, b;
	scanf("%d%d", &a, &b);
	printf("%d", a + b);
}
int main()
{
	// testiostream
	testiostream();
	freopeniostream();

	return 0;
}

在这里插入图片描述

  • 字符类的处理

    • 正常的操作
    • 调用成员函数的方式
      在这里插入图片描述
      str 需要字符串结束标记
      str[20]="";
  • 格式控制字符

    • 包含头文件 iomanip
    • 常用的格式控制,一种是调用成员函数方式,一种流控制字符去做
      • 设置有效位数: setprecision(n)
      • 设置精度: fixed结合setprecision使用
  • istream 类 cin在这里插入图片描述

#include"iostream"
#include"cstdio"
#include <iomanip>
using namespace std;
void testiostream()
{
	cout << "标准输出" << endl; //重定向
	cerr << "标准错误输出" << endl; //不能重定向
	clog << "标准错误输出" << endl;////重定向为文件
	// 字符类的处理
	char c = 'c';
	cout.put(c);
	cout.put('\n');
	//  字符串输出
	cout.write("I love you", 5);//   可以指定长度输出  截取输出
	cout.put('\n');
	// 输入
	//c=cin.get();  // 返回值为输入的值
	cout.put(cin.get());
	//cout.put(c);
	cout.put('\n');
	// 字符串输入
	//while (getchar() != '\n');// 清空缓冲区
	while (cin.get() != '\n');
	char str[20] = "";  // 需要结束标记  不然会 烫烫烫
	//string st;     不能对字符串类 操作
	cin.getline(str, 20);// 无返回值
	cout.write(str,20);   // 更为安全
	cout.put('\n');

}
void testiomanip()
{
	// 格式控制字符
	//头文件 #include <iomanip>
	double pi = 3.1412345;
	cout << "设置有效位数:" << setprecision(4)<<pi << endl;
	cout << "设置有效小数位数:" <<fixed<< setprecision(2) << pi << endl;
	//进制  转换输出
	cout << "hex  16   32\t" << hex << 32 << endl;
	cout << "oct   8   13\t" << oct << 13 << endl;
	cout << "setbase(16)  16  15 \t" << setbase(16)<<15<<endl;
	cout << "setbae (2)  3  22 不行 为啥?\t" << setbase(2) << 22<< endl;
	// 对齐方式和 输出宽度
	cout << setw(6) << 123 << setw(6) << 3456 << setw(6) << 56 << endl;
	// 默认 右对齐 
	// 自己设设置 
	cout << setiosflags(ios::left) << endl;
	cout << setw(6) << 123 << setw(6) << 3456 << setw(6) << 56 << endl;

}
void freopeniostream()
{
	freopen("1.txt", "r", stdin);// 把基本输入定向为输入文件
	int a, b;
	scanf("%d%d", &a, &b);
	printf("%d", a + b);
}
int main()
{
	//freopeniostream();
	testiostream();
	testiomanip();

	return 0;
}

在这里插入图片描述

字符流

  • 用的头文件是:sstream类

    • istringstream类
    • ostringstream类
    • 一般用时stringstream类对象即可
  • 获取字符流对象中的数据

    • string str() //获取string
    • void str(const string& str); 重新设置字符流对象的数据
  • 一般字符流对象做字符串处理

    • 字符串分割
    • 字符串转换问题
      // 再补
C++IO流 在C语言中,如果想将一个整形变量的数据转化为字符串格式,如何去做呢?1.使用itoa()函数2.使用sprintf()函数都需要先给出保存结果的空间,那空间要给多大呢,这就不太好界定,但两个函数在转化时而且转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃。在C++中,可以使用stringstream类对象来避开此问题,在程序中如果想要使用stringstream,必须要包含头文件<sstream>。 阅读详情

相关推荐

C++—— IO流

C++IO流详解!!!

hu_143的博客 1207

【C++】IO流详解

在C语言中,如果想要将一个整形变量的数据转化为字符串格式,如何去做?使用itoa()函数使用sprintf()函数但是两个函数在转化时,都得需要先给出保存结果的空间,那空间要给多大呢,就不太好界定,而且转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃。在C++中,可以使用类对象来避开此问题。在程序中如果想要使用,必须要包含头文件。和,分别用来进行流的输入、输出和输入输出操作,本文主要介绍 stringstream。

lirendada的博客 4437

从零到一:基于Matlab的二阶系统时域性能指标计算与可视化实战

本文提供了一份基于Matlab的二阶系统时域性能指标计算与可视化实战指南。通过详细的代码示例,手把手教你如何利用Matlab计算超调量、调节时间等关键指标,并绘制阶跃响应曲线进行可视化分析,帮助控制工程学习者和从业者快速掌握系统性能评估方法。

weixin_29096377的博客 268

【C++】IO流

💬 hello!各位铁子们大家好哇。今日更新了C++IO流的相关内容在C语言中,如果想要将一个整形变量的数据转化为字符串格式,如何去做?使用itoa()函数使用sprintf()函数但是两个函数在转化时,都得需要先给出保存结果的空间,那空间要给多大呢,就不太好界定, 而且转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃。在C++中,可以使用stringstream类对象来避开此问题。在程序中如果想要使用stringstream,必须要包含头文件。

qinjh_的博客 3705

三相逆变器LCL滤波设计实战:从αβ转换到dq解耦控制的完整建模流程

本文详细解析了三相逆变器LCL滤波设计中的关键步骤,从αβ转换到dq解耦控制的完整建模流程。重点介绍了dq坐标系下的解耦控制策略,通过Simulink仿真验证模型准确性,并提供谐振峰偏移、解耦不彻底等实际问题的解决方案,助力电力电子工程师提升系统稳定性。

weixin_28678151的博客 229

C#---第十一课:对列表的各种操作,添加、删除、排序、列表长度、获取元素的索引、FirstOrDefault()、SingleOrDefault()、last()

1.添加元素 2.删除元素 (1)删除列表中指定的元素 (2)删除列表A中所有与列表B相交的元素---常规 (3)删除列表A中所有与列表B相交的元素---lambda 3.排序(正序、倒序) 4.获取列表的最大容量(长度)、已用容量 6.获取元素在列表中的位置(index) 7.判断某元素是否在列表List中 8.获取列表中第一个元素First() & FirstOrDefault() 9.获取列表中唯一元素Single() & SingleOrDefault() 10.获取列表中最后一个元素

Alien-Hu 3625

【C++】————IO流

1.一个冷知识:屏蔽力是一个人最顶级的能力,任何消耗你的人和事,多看一眼都是你的不对。2.你不用变得很外向,内向挺好的,但需要你发言的时候,一定要勇敢。正所谓:君子可内敛不可懦弱,面不公可起而论之。3.成年人的世界,只筛选,不教育。4.自律不是6点起床,7点准时学习,而是不管别人怎么说怎么看,你也会坚持去做,绝不打乱自己的节奏,是一种自我的恒心。5.你开始炫耀自己,往往都是灾难的开始,就像老子在《道德经》里写到:光而不耀,静水流深。

bhbcdxb123的博客 2695

手把手教你逆向抖店滑块验证码:从抓包到生成captchaBody的完整流程(附Python复现代码)

本文详细解析了抖店滑块验证码的逆向过程,从抓包分析到参数生成,最终用Python完整复现验证流程。涵盖关键接口分析、指纹参数生成、轨迹加密逻辑及核心加密算法实现,帮助开发者突破抖店的多重安全机制,实现高效的人机验证绕过。

weixin_30681121的博客 424

『C++』C++的IO流详解

C++的IO流详解

枫叶先生的博客 2304

ESP32专用E220LoRa库:EBYTE LoRa模块驱动与点对点透传实现

LoRa是一种基于扩频技术的低功耗远距离无线通信协议,广泛应用于物联网终端设备间的数据传输。其核心原理在于通过线性调频(Chirp)信号提升接收灵敏度与抗干扰能力,从而在Sub-GHz频段实现数公里级视距通信。该技术具备高链路预算、强穿透性与多节点并发接入能力,显著降低广域传感网络的部署成本与功耗门槛。典型应用场景包括农业环境监测、工业设备远程诊断、智能表计数据回传等对可靠性与简易集成要求严苛的嵌入式系统。本文聚焦EBYTE E220-400T22D模块在ESP32平台上的工程化落地,深入解析硬件引脚时序约

weixin_36064575的博客 554

3dmax文件格式转换——.max 转换为 .flt(解决转换后.flt没有纹理贴图的问题)

本文主要介绍如何在3dmax中将.max格式文件转换为.flt格式文件,并解决转换后的文件没有纹理贴图的问题。 在3dmax中,将.max文件转换为.flt格式,只需导出选择.flt格式即可,但是导出的文件在osgEarth中加载后,缺少纹理和贴图。 下面是解决方案: 1、选中加载的模型,然后点击 渲染-> 渲染到纹理 2、将 渲染到纹理 子窗口往下拉,点击 添加 按钮,添加 ...

cchangcs 6167

C++ IO流

C语言中用sprintf可以整型转字符串C++中可以用ostringstream,自定义类型转字符串ostringstream是ostream的派生类这里的oss<<d,去调用的是ostream&operator<<,本质上都会以字符串的形式进去out,然后再用str函数取出这个字符串,用string接收。

ljw的博客 1711

Windows原生与WSL2环境下OpenClaw性能与兼容性的对比分析研究

本文对比分析了Windows原生环境与WSL2环境下运行OpenClaw的性能与兼容性。Windows原生环境提供深度系统集成、图形界面支持和硬件加速优势,适合需要Windows生态集成的用户;WSL2则提供接近原生Linux的性能体验,兼容Linux工具链,适合开发者和跨平台需求。文章详细介绍了两种环境下的推荐硬件配置、系统版本选择及必备工具,并提供了具体的部署步骤指南。研究表明,两种环境各有适用场景,用户可根据需求选择最适合的部署方式。

一键难忘的博客 1218

【C++】IO库 && IO流

【C++】 IO库 && IO流,一文带你搞懂C++的 IO流

tan_run的博客 1999

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C++的IO流

文章目录C语言的输入与输出流是什么C++标准IO流C++文件IO流stringstream的介绍 C语言的输入与输出 在C语言当中,我们使用最频繁的输入输出方式就是scanf与printf: scanf: 从标准输入设备(键盘)读取数据,并将读取到的值存放到某一指定变量当中。 printf: 将指定的数据输出到标准输出设备(屏幕),使用时需要注意宽度输出和精度输出的控制。 C语言借助了相应的缓冲区来进行输入与输出,如下图所示: 对输入输出缓冲区的理解: 可以屏蔽掉低级I/O的实现。 低级I/O的实现依

2021dragon的博客 5091

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【C++】C++的IO流

本篇博客主要介绍的是C++的IO流。的那套东西是面向过程的,C++这套东西是面向过程的。我们可以使用一个类来进行文件的读写,其中最重要的就是把C++对于文本文件读写的方法学一学,用着很方便。其他的作为了解知识学一学。

fight_p的博客 1592

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【C++进阶】IO流

C++IO流详解

m0_60338933的博客 3075

C++IO流详解

文章目录一.C++输入输出二.C++文件流 一.C++输入输出 C++标准库提供了一组丰富的输入/输出功能,本文重点讲解C++编程中最常见的 I/O 操作 C++的 I/O 发生在流中,流是字节序列,如果字节流是从设备(如键盘,磁盘驱动器,网络连接等)流向内存,这叫做输入操作,如果字节流是从内存流向设备,这叫做输出操作。 标准输出流 : 预定义的对象 cout 是 ostream 类的一个实例,cout 对象"连接"到标准输出设备,通常是显示屏。 标准输入流 : 预定义的对象 cin 是 istream 类

DR5200的博客 6318

C++之IO流

C++之IO流

2302_81120572的博客 1267
上一篇: C++虚函数和多态09 提高代码复用率
下一篇: HHH++--
燕子01
博客等级 码龄6年 8粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值