8 c++ 流

2020.11.11 第8课 C++io流 2020.11.11 第8课 C++io流 一、虚继承 菱形继承:继承了相同父类 1.虚继承 2.子类的构造函数写法 #include <iostream> using namespace std; class A { public: A(int a) :a(a) {}; int a; }; class B :virtual public A { public: B(int a, int b) :b(b), A(a) {} int b; }; class C :virtu 阅读详情

标准流

cin,cout继承了标准流

int a;
// 如果这里输入字符,如输入 cc ,后续的cin将无法正常进行(注:如果这里输入的是 cc ,由于无法给 a,那么 cc 还在 cin 流中)
if (cin >> a)
{
	/* 如果流有效(成功输入) */
	cout << a << endl;
}

cin >> a;

cout << cin.eof() << endl; // 如果流达到文件结束位置,返回 true(cin读取的不是文件)
cout << cin.bad() << endl; // 如果发生系统级错误,这里将返回 true
cout << cin.fail() << endl; // 如果流出错,这里将返回 true
cout << cin.good() << endl; // 如果流还可以读取,返回true

// 如果发生错误,但未发生系统级错误,这里将状态复位,这样,后续的 cin 又可以读取了
if (cin.fail() == true && cin.bad() == false)
{
	cin.clear(); // 复位所有状态,
}

auto oldState = cin.rdstate(); // 读取cin状态
cin.setstate(oldState); // 设置cin状态

string s;
cin >> s;
// cout << s 不会立即输出,endl的作用是换行并刷新缓存区
cout << s << endl;

文件流

#include <fstream>

// 定义文件流对象
fstream f;
// 将文件流关联到main.d文件
f.open("./main.d");
// 取消文件流和main.d文件的管理
f.close();

// 文件输入流
ifstream ifs;
// 以读方式管理到main.d
ifs.open("./main.d", ifstream::in);
// 如果文件输入流有效
if (ifs)
{
	string word;
	// 读取输入流,>> 会以空格,作为分隔符
	while (ifs >> word)
	{
		cout << word << endl;
	}
	ifs.close();
}

// 文件输出流
ofstream ofs;
// 以写,追加方式管理到文件new.txt
ofs.open("./new.txt", ofstream::out | ofstream ::app);
if (ofs)
{
	// 写如流
	ofs << "ABC";
	ofs.close();
}

String流

istringstream iss;
iss.str("ab cd ef"); // 设置流字符
string word;
while (iss >> word)
{
	cout << word << endl; // 依次输出 ab, cd, ef
}

ostringstream oss;
oss << "ab";
oss << "cd";
oss << "ef";
cout << oss.str() << endl; // str()获取流的字符,输出 abcdef
8、流与文件处理:掌握C++中的输入输出技术 本文详细介绍了C++中文件处理的核心技术,包括流操作、文本文件的读写、文件状态检查、高级技巧(如文件定位和缓冲区管理)、实际应用(如日志记录和数据持久化)以及优化技巧。此外,还探讨了多文件处理、文件格式转换、调试技巧和综合案例,帮助开发者掌握高效的文件处理技能。 阅读详情

相关推荐

Qt/C++音视频开发8-ffmpeg保存裸流

一、前言 最开始做的ffmpeg保存视频文件,就是直接保存的裸流数据,裸流数据一般是H264格式的数据,这种数据文件可以用部分播放器播放,由于不是标准的格式,很多播放器其实不支持的,需要安装对应的解码器才行。后面发现安装好K-Lite解码器后,连系统自带的播放器都可以正常播放H264视频流文件,而且如果同步保存了同名文件的aac音频文件放在同目录下的话,声音都能正常同步播放,可能这是播放器做的处理吧。 直接保存裸流基本上没有什么难度,大致流程就是先打开文件,然后在循环解码的地方直接将解码好的数据write到

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 2286

C++Primer 第8章IO流

C++Primer 第8章 IO流 写在前面 经过前面初级部分的学习,我进入该书所写的中级阶段——C++标准库,这里会讲到C++所自带的最核心的标准库,之前听过侯捷老师的课,有幸感受到标准库的强大与精妙。正如本书所说,标准库是值得每一位C++程序员应该掌握的。这里给自己鼓劲! 附上几张我上周末终南山的照片: 是挺美的,不过我去的时候刚好遇上下雨,行走在云中,能见距离不到10m,看不见远处的景吧,但是也别有一番梦境的氛围哈哈哈。 下面开始言归正传! 做个总结吧,我会更改我之前的写博文的风格的,之前的博文

qq_40084959的博客 302

逆向工程实战:解密AppleAccount的X-MMe-Nas-Qualify签名生成机制

本文通过逆向工程实战,详细解析了AppleAccount服务中X-MMe-Nas-Qualify签名的生成机制。作者利用Frida进行动态追踪定位签名源头,结合IDA Pro进行静态分析,并借助LLDB动态调试还原核心算法。文章最终分享了如何独立于苹果官方库,通过Python代码复现签名算法,为自动化测试和深度交互苹果服务的开发者提供了关键技术路径。

weixin_29323049的博客 707

C++ STL IO流 与 Unicode (UTF-16 UTF-8) 的协同工作

09年研究技术的大神真的好多,本文测试有很多错误,更正后发布下(可能与编辑器相关)。 file.imbue(locale(file.getloc(), new codecvt_utf8<wchar_t, 0x10FFFF, consume_heade...

chouchijiao8952的博客 402

[Github]GitHub 2FA快速安全配置全攻略

GitHub强制要求用户启用双重身份验证(2FA)以提升代码安全。本文详细介绍了2FA的三种实现方式:TOTP应用验证(推荐)、SMS短信验证(备用)和硬件安全密钥(最安全),并提供了配置指南。特别推荐使用在线工具2FA.run快速测试TOTP功能。文章还涵盖恢复代码管理、企业级2FA策略制定以及常见问题解决方案,如时间同步问题、多设备同步等。通过强制2FA、定期审计和建立安全事件响应流程,开发者可构建更安全的代码管理体系。

冰茶的博客 2621

pi-star图形界面安装指南

pi-star图形界面安装指南,MMDVM热点安装,树莓派3B+热点

blueisman的专栏 1909

C++ STL IO流 与 Unicode (UTF-16 UTF-8) 的协同工作(转载)

转自:http://dantvt.spaces.live.com/blog/cns!D87988A6CAC0A480!925.entry写的真不错,受益匪浅呀要是身边多些这样善于钻研的程序员朋友就好了凡用到文件读写,输入输出,就得和编码、Unicode 打交道。这系列实验来测试一下 C++ STL 的 IO流 对 ANSI 编码、Unicode 编码的支持特性,看能否找到一个自动识别编

5090

深入分析大众点评 Ajax 接口:直接请求 JSON 数据高效获取评论

大众点评网站采用前后端分离架构,通过Ajax接口动态加载数据。按F12打开开发者工具,切换到Network(网络)面板。实际环境中,我们需要使用Python重现这一加密逻辑。查看请求响应,寻找包含评论数据的JSON接口。参数是大众点评的反爬机制核心,需要特别处理。:尊重网站的robots.txt文件规定。:仅将数据用于合法合规的研究和分析目的。:不侵犯大众点评的商业秘密和知识产权。打开大众点评网站,进入任意商户页面。:对采集到的用户信息进行脱敏处理。:避免对目标网站造成过大负担。

Z_suger7的博客 1585

C++ STL IO流 与 Unicode (UTF-16 UTF-8) 的协同工作[转]

http://blog.youkuaiyun.com/bookish_2010_prj/archive/2010/04/06/5454771.aspx C++ STL IO流 与 Unicode (UTF-16 UTF-8) 的协同工作 凡用到文件读写,输入输出,就得和编码、Unicode 打交道。这系列实验来测试一下 C++ STL 的 IO流 对 ANSI 编码、Unicode 编码的支持特性,...

weixin_30776863的博客 147

详细分析 Bladex中的swagger-resources资源未授权访问的解决方法

有如下方式,网关过滤、去除配置以及修改代码还有隐藏彩蛋(附Demo),推荐阅读

码农研究僧的博客 1727

ESP32 VSCode开发环境配置

ESP32 VSCode开发环境配置

qq_53529450的博客 509

【c++ primer读书笔记】【第8章】IO流

1、iostream定义了读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写string对象的类型。 头文件 类型 iostream istream, wistream从流读取数据 ostream, wostream向流写入数据 iostream, wiostream读写流 fst...

weixin_30566111的博客 61

1篇1章4节:生成对抗网络GAN和图像生成领域的StyleGAN

AI图像生成技术的革命性突破:从GAN到StyleGAN 近年来,人工智能在图像生成领域取得显著进展,尤其是生成对抗网络(GAN)的发展推动了技术的飞跃。从早期的基础GAN到渐进式GAN(Progressive GAN),再到革命性的StyleGAN,AI生成图像的逼真度已接近人类创作水平。StyleGAN通过引入风格潜向量和自适应实例归一化,实现了对图像风格与内容的精细控制,广泛应用于人脸生成、艺术创作及影视行业。后续的StyleGAN2解决了“斑点”问题,StyleGAN3进一步优化纹理过渡,提升了图像

MD Code 218

C++primer第八章 IO库 8.3string流

8.3string流 sstream头文件定义了三个类型来支持内存IO,这些类型可以向string写入数据,从string读取数据,就像string是一个IO流一样。 istringstream从string读取数据,ostringstream向string写入数据,而头文件stringstream既可从string读数据也可向string写数据。与fstream类型类似,头文件sstream中定义的类型都继承自我们已经使用过的iostream头文件定义的类型。除了继承得来的操作,sstream中定义的

CHYabc123456hh的博客 328

C#与天文观测:Celestia模拟星空的奇幻之旅

Celestia就像一艘穿梭在星海中的小飞船,带领我们遨游宇宙。C#则是这艘飞船的智能导航系统,用代码指挥它飞向任何我们向往的星球或星系。首先,下载并安装Celestia,熟悉其基本操作和功能。创建一个星空目标列表,包括不同的恒星、行星和星系。// 示例:定义观察目标列表new SpaceObject("太阳"),new SpaceObject("月球"),new SpaceObject("火星")

java专栏 1457

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C++ Primer 5th笔记(8)chapter8 类:IO库-流的状态

1. 定义:流有状态,表示是否出错。 eg. 通常在使用它时要测试它的状态: while (cin >> word) 注:只有在非错误状态下,stream才能被读写 2. 流的状态值 strm::iostate 机器相关的整型名,由各个iostream类定义,用于定义条件状态 strm::badbit strm::iostate 类型的值, 流已崩溃 strm::failbit strm::iostate 类型的值,用于指出失败的IO操作int ival;cin >> ival;

thefist的专栏 439

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 7 c++ 类
下一篇: 9 c++ 顺序容器
dabusidede
博客等级 码龄9年 84粉丝 208原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值