八章 札记--C++ primer 之旅

MobaXterm终端工具个人学习版安装包及常用配置备份 资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。 立即下载
IO 对象 不可复制或赋值
形参或返回类型不能是流类型,可以通过传递或返回指向该对象的指针或引用 来传递和返回IO 对象。

所有流对象都包含一个条件状态成员,类型为iostate 类型

流的状态由 bad , fail ,eof 和 good 操作解释,如果 bad,fail 或者 eof 任意一个为 true ,则检查流本身将显示该流处于错误状态。反之,如果三个没有一个是true ,则 good 操作将返回 true。

流的状态成员有setstate 和 clear 操作管理。
     clear: 将条件重设为有效状态。     
     setstate: 打开某个指定的条件,用于表示某个问题的发生。

书中课后题:
编写一个函数,其唯一的形参和返回值都是istream& 类型,该函数应一直读取流直到到达文件结束符。并将读到的内容输出,最后,重设流设其有效,并返回流。
istream& testIO(istream &ist)
{
     string s;
     while(ist>>s,!ist.eof())
     {
          assert(!ist.bad());
          if(ist.fail())
          {
               cerr<<"bad data, try again";
               ist.clear(istream::goodbit);
               continue;
          }
          cout<<"your input:"<<s<<endl;
     }

     ist.clear();
     return ist;
}

输出缓冲区管理:
     1输出缓冲区刷新: 1) endl: 输出一个换行符并刷新缓冲区; 2)flush不在输出添加任何字符,刷新; 3)ends: 在缓冲区中插入空字符null,然后刷新。
     2,unitbuf 操作符: 需要刷新所有输出时使用。在每次执行完写操作后都刷新流。
          EX:  cout<<unitbuf<<"first"<<"second"<<nounitbuf;
                 等价于 :cout<<"first"<<flush<<"second"<<flush;
               nounitbuf 使流恢复为正常的,由系统管理的刷新方式。
     注意: 程序崩溃,不会刷新缓冲区; 所以最好保证在程序中所有的输出操作都显示调用了flush 或 endl
     
     3、输入和输出绑在一起: 任何读输入流的尝试都将首先刷新其输出流关联的缓冲区。
          tie 函数 可用istream 或 ostream 对象调用。tie 的形参是指向ostream对象的指针。


文件的输入和读出

fstream 头文件 定义了三种支持文件IO 的类型:
     1)ifstream 由 istream 派生, 提供读文件
     2)ofstream 由ostream 派生, ....写......
     3)fstream   由iostream 派生,....读写同一个文件的功能。
两个操作: open() 和 close()  参数都是文件名,使用C风格字符串,用string.c_str()
     
检查文件打开是否成功:
     ifstream infile;
     infile.open("in");
     if(!infile) {   打开失败   }
     。。。。

如果重用文件流读写多个文件,必须在读另一个文件之前调用clear 清除该流的状态。


文件模式:
     in :读操作
     out: 写操作
     app: 每次写之前找到文件尾
     ate:     打开文件后立即将文件定位到文件尾。 (只在打开时有效)
     trunc : 打开文件清空已存在的文件流
     binary: 二进制模式进行IO操作。

注意: ofstream 对象指定out 模式等效于 同时指定了 out 和 trunc 模式
          EX: ofstream outfile("file");
          等价于   ofstream outfile("file", ofstream::out |  ofstream::trunc);

字符串流:
sstream 头文字
     1)istringstream 由 istream 派生. 提供读string    
     2)ostringstream 由 ostream派生,   写
     3)stringstream 由 iostream 派生, 读写



stringstream 的操作:
     stringstream   strm:       创建对象
     stringstream   strm(s);   创建存储s的副本的stringstream对象,s是string类型对象
     strm.str()                      返回strm中存储的string类型对象
     strm.str(s)                     将string类型的s复制给strm,返回void





机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取 立即下载

相关推荐

科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

[转]C++学习小结 - 学习札记 - C++博客

导读:   关注此博客已经很久了,但是由于校园网的原因,导致无法快速访问,所以一直用抓虾在看,但是觉得还是有必要申请一个。我发现此博客上的技术性都很强,很值得学习。废话少说了,既然申请了此博客,全当c++学习的一个新的台阶吧。   此前,自己学习C++书看了不少。《C++ Primer Plus》 5th (当时以为是《C++ Primer》)是自己看的第一本C++的书籍,此书看得我头昏眼

674

大数据应用技术实验报告一 Hadoop三种模式安装配置

JDK+Hadoop安装配置、单机模式配置 以下操作在SecureCRT里面完成 1.关闭防火墙 firewall-cmd --state 显示防火墙状态running/not running systemctl stop firewalld 临时关闭防火墙,每次开机重新开启防火墙 systemctl disable firewalld 禁止防火墙服务。 2.传输JDK和HADOOP压缩包 Sec...

Ruthless_Childe的博客 3093

C++ Primer 学习札记(二)

XanaduV的专栏 448

解密HDMI热插拔检测电路:从HPD引脚到EDID读取的全流程避坑

本文深入解析HDMI热插拔检测与EDID读取的全流程,从HPD引脚信号特性、DDC通道I2C协议到EDID数据结构,系统剖析了硬件电路设计、信号完整性和软件协议中的常见陷阱与解决方案,为消费电子设备开发者提供了一套完整的实战避坑指南。

weixin_29291069的博客 646

字节跳动已上岸测试工程师的面试经验

这个时候发面经已经有点晚了,所以现在打算让这篇面经主要面向即将秋招的童鞋,当然现在还在春招的童鞋也可以看哈,我和大家一起聊聊关于测试的二三事。   一、测试工程师的工作是什么?   测试工程师简单点说就是找bug,然后反馈给开发人员,不要小看这个工作。   首先很明显的bug开发人员有时候自己就能找到,测试人员要有比开发人员更加全面的想法才能找到深层次的问题点,   其次,要端正一个态度就是测试人员不是一个电脑小白,相反国外顶级的测试开发工程师同时也是顶级的开发工程师甚至更厉害,所以作为一个测试工程师一定要

m0_60745607的博客 2933

aba 回文练习 -- 参考罗大神的

#include #include #include #include using namespace std; #define maxn 1024 #define parr(arr,n) printf(#arr":");for(int kk=0;kk int bufa[maxn],bufb[maxn],bufs[maxn],bufv[maxn]; int sa[m

lsff Code World 6748

解锁RK1126与SC132GS摄像头适配密码:技术与代码全解析

本文详细介绍了瑞芯微RK1126芯片与SC132GS摄像头的适配方法。首先分析了RK1126的四核Cortex-A7处理器、Mali-T860 GPU等硬件特性,以及SC132GS的130万像素、全局快门等技术参数。重点阐述了基于MIPI CSI接口的硬件连接原理和基于V4L2框架的软件驱动设计,并提供了完整的初始化、数据采集和图像处理代码实现。针对常见连接和图像质量问题给出了解决方案,展现了该组合在智能安防、工业检测等领域的应用潜力,为开发者提供了实用的技术参考。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1503

kmp 练习下

/* * ===================================================================================== * * Filename: kmp.cpp * * Description: * * Version: 1.0 * Created: 10/14/

lsff Code World 2290

(14-3)值分布式算法:QR-DQN (Quantile Regression DQN)算法

QR-DQN(Quantile Regression DQN)是一种强化学习算法,它是深度 Q-网络(Deep Q-Network,DQN)的一个变种,旨在更好地处理值函数的不确定性。QR-DQN的实现步骤与传统的DQN类似,但在目标分布计算和损失函数方面有一些不同之处,这使得它能够更好地处理值函数的不确定性。QR-DQN(Quantile Regression DQN)算法的核心思想是将值函数表示为一个分布,而不是传统的单一值估计。在下面的内容中,将讲解一个使用QR-DQN算法的例子。

码农三叔 2053

Unreal 从入门到精通之VR常用操作

本文总结了使用Unreal5开发VR项目时遇到的常见问题及其解决方案。首先,介绍了如何通过VRPawn的TryTeleport函数设置玩家视角位置,确保头显移动时安全区域的正确传送。其次,详细说明了如何在Unreal中播放视频,包括导入视频文件、创建媒体播放器和媒体纹理,并将其应用到3D物体上。接着,讲解了如何播放VR全景视频,建议使用MediaPlate媒体板并调整几何体为球体。最后,讨论了如何手动打开和关闭VR模式,以便在PC模式和头显模式之间切换。这些方法为VR开发提供了实用的技术指导。

TxNet 951

初次邂逅句柄类 --C++ primer

句柄类存储和管理基类指针。 指针所指对象的类型可以变化,既能指向基类类型对象又可以指向派生类类型对象。 用户通过句柄类访问继承层次的操作 (virtual 函数) 设计考虑因素:        1)对任何保存指针的类一样,必须确定对复制控制的具体操作。包装了继承层次的句柄应该表现得像一个智能指针或者像一个值        2)句柄类决定句柄接口屏蔽还是不屏蔽继承层次。 如

lsff Code World 1859

微信小程序 - 获取当前日期时间(函数封装)

效果图 前言 摘自微信小程序demo程序中utils.js方法。 普通newDate()出来的日期时间,并不是我们想要的格式,所以要进行格式整理。 解决方案 打开utils.js文件(随意),复制以下代码: /** *获取当前时间 *@description自定义日期分钟秒数 *@param{Object}date-newData()对象 *@returnString */ functionformatTime(date){ //年月日

🏆 前端领域优质创作者 2843

m_sort 归并排序(迭代)

#include #include #include using namespace std; typedef int element; void merge(element *list,element *sorted,int i,int m,int n) { int j=m+1,k=i; while(i if(list[i]  sorted[k++]=l

lsff Code World 1738

pytorch实现基本的logistic和softmax回归实验(手动+torch)

前提:不是前馈神经网络,没有隐藏层。 一:Logistic回归实验–人工构造数据集,手动构造模型 要求: 动手从0实现logistic回归,实现二分类,人工构造数据集,并分析loss、训练集、测试集的准确率。(要求从零实现二元交叉熵) 实验过程: 1.1人工构造数据集 1. # #自定义数据---训练集 2. num_inputs = 2 3. n_data = torch.ones(1500, num_inputs) # 数据的基本形态 4. x1 = torch.normal(2 * n_d

qq_37534947的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

十一章 札记--C++ primer 之旅

find 运算: 形参:两个迭代器,检查两个迭代器实参标记范围内的每一个元素。找到与给定值的元素,返回指向该元素的迭代器;如果没匹配元素,这返回第二个形参。 注意: 泛型算法从不执行容器操作,单独依赖迭代器和迭代器操作实现,算法基于迭代器及其操作实现,而并非基于容器操作。 泛型算法     头文件   泛化的算术算法 头文件 只读算法:

lsff Code World 1308

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

k_over 重叠字符串

#include #include #include #include using namespace std; #define maxn 1024 #define maxm 1024 int bufa[maxn],bufb[maxn],bufs[maxm],bufv[maxn]; int sa[maxn],height[maxn],rank[maxn];

lsff Code World 1207

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

二章 札记 --C++ primer 之旅

实习告一段落,翻开C++primer 准备苦逼的重温C++ 。以下是一些 从书上抄下来的笔记。 测试: -10u 是什么类型? -10u 类型是unsigned int  使用 typeid(-10u).name() 测试的 变量的初始化: 1、复制初始化: int ival=1024; 2、直接初始化: int ival(1024); 直接初始化语法更灵活且效率更高。

lsff Code World 817

七章 札记--C++ primer 之旅

const 形参:      如果将函数形参定义为非引用的const类型,EX: void fcn(const int i) {};  则不能修改实参的局部副本。   注意:  void fcn(const int i) {}; 和  void fcn(int i) {}; 编译的结果是一样的。 规则: 如果使用引用实参的唯一目的是避免复制实参,则应该将实参定义为const 引用

lsff Code World 752

C++ new 和 delete 的重载

发现:类里面有几种成员函数是没有this指针的,也就是访问不了类的成员  构造函数:有; 说明其实对象真正的初始化就是在初始化类表  析构函数:有; 析构函数在最后的时刻才把对象空间释放  普通函数:有  static函数: 没有,但能访问静态成员  重载的 new new[]成员函数: 没有, 因为对象的产生是先有空间在调用构造函数,new就是完成前个步骤的工作  重载的 delet

lsff Code World 704

十五章 札记--C++ primer 之旅

C++动态绑定的实现      在C++中,通过基类的引用(或指针)调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这是动态绑定的关键。 用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指针)所指向对象的实际类型所定义的。 虚函数: 除了构造函数外,任意非static 成员函数都可以是虚函数。保留字virtu

lsff Code World 648

十六章 札记--C++ primer 之旅

模板定义: 1、函数模板:             模板定义以关键字 template 开始,后接尖括号括起的模板形参表。                 inline 函数模板, inline 说明符放在模板形参表后面,返回类型之前。     2、定义类模板:            必须以关键字template开头, 后接模板形参类型表。

lsff Code World 645

十四章 札记--C++ primer 之旅

重载运算符:具有特殊名称的函数,operator + 操作符符号 ,具有返回类型和形参表。注意: 重载操作符必须具有至少一个类类型或枚举类型的操作数。大多数重载操作符可以定义为普通非成员函数或类的成员函数。作为类成员的重载函数,形参比操作数数目少1,隐含的this 形参,限定为第一个操作数。规则:一般将算术和关系操作符定义为非成员函数,而将赋值操作符定义为成员操作符重载和友元关系:     操作符

lsff Code World 615

十三章 札记--C++ primer 之旅

复制构造函数:       定义: 一种特殊构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用。      调用: 当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式使用复制构造函数。 当将该类型的对象传递给函数或从函数返回该类型的对象是,将隐式使用复制构造函数。 析构函数:      定义: 析构函数可用于释放对象在构造或在对象的生命期中所获得

lsff Code World 606

十二章 札记--C++ primer 之旅

类成员: 可以使数据、 函数 或者 类型别名 typedef 定义的 所有成员必须在类的内部声明。 构造函数: 一般使用一个构造函数初始化列表 来初始化对象的数据成员。                 EX: Sales_item() : units_sold(0),  revenue(0.0) {}                 构造函数初始化式只在构造

lsff Code World 546
上一篇: 七章 札记--C++ primer 之旅
下一篇: 九章 札记--C++ primer 之旅
lsff01
博客等级 码龄14年 4粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值