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

阿里云多网站建设上海最新发布最新

阿里云多网站建设,上海最新发布最新,公司微信公众号怎么创建,贵阳软件开发公司在哪里前言 简单看一下就行 文章目录一、IO类1.1基本概念1.2管理输出缓冲二、文件输入输出2.1文件模式三、string流3.1istringstream3.2ostringstream一、IO类 1.1基本概念 ​ 我们常见的流有istream和ostream#xff0c;这两个流都是有关输入和输出的#xff0c;此外#xff0c…前言 简单看一下就行 文章目录一、IO类1.1基本概念1.2管理输出缓冲二、文件输入输出2.1文件模式三、string流3.1istringstream3.2ostringstream 一、IO类 1.1基本概念 ​ 我们常见的流有istream和ostream这两个流都是有关输入和输出的此外下标列举了一些其它的IO类型。fstream定义了读写命名文件的类型sstream定义了读写内存string对象的类型。 ​ 不同IO类型之间虽然存在着差异但是我们在使用时完全可以忽略。可以用读取数据不管是从控制台窗口用户的输入、磁盘文件中读入还是读取一个字符串。标准库通过继承机制忽略了这些差异这部分在15章和18章有谈到感觉这种知识点目前阶段可以不用去深究知道怎么用就行。 IO对象没有拷贝或赋值 ​ IO对象不能对其进行拷贝或者赋值所有我们在编写函数时不能将其作为形参或者返回类型。通常进行IO操作的函数以引用的方式传递和返回流。 IO操作的条件状态 ​ 书上列举很多使用IO操作时可能出现的条件状态可以把它们理解为一个报错信息提醒。比如定义了一个整型变量输入的确实一个字符串这时就会出现IO操作失败的信息一旦一个流发生错误其后面跟着的IO操作都会失败。 确定一个流对象的状态的最简单的方法是将它当做一个条件来使用。 while (cin word)如果我们要查询一个流的具体状态可以通过iostate类型它里面有4个constexpr值badbit表示系统级错误流无法再使用比如不可恢复的读写错误failbit就是上面提到了输入类型不匹配这种情况是可以修正的流可以继续使用eofbit表示文件结束位置这时failbit也会被置位goodbit值为0表示流未发生错误。 1.2管理输出缓冲 ​ 每个输出流都管理一个缓冲区用来保存程序读写的数据。缓冲区机制可以让操作系统将程序的多个输出操作组合成单一的系统级写操作。 刷新输出缓冲区 ​ 导致缓冲区刷新的条件有很多如下 程序正常结束作为main函数的return操作的一部分缓冲区满时需要刷新才能写入新的数据使用endl显式刷新缓冲区还有flush和ends都可以刷新缓冲区每个输出操作之后可以使用操纵符unitbuf设置流的内部状态来清空缓冲区使用该操作会在输出后立即刷新缓冲区适用于程序之后的所有输出可以通过设置nounitbuf重置回到正常的缓冲方式两个关联的流在其中一个被读写时另一个流的缓冲区会被刷新。比如cin和cerr都关联到cout当读cin或者写cerr都会导致cout的缓冲区刷新(可以通过tie构建两个流之间的映射关系) 二、文件输入输出 ​ 当要读写一个文件时可以定义个文件流对象并将对象与文件关联起来。每个文件流类都定义了一个名为open的成员函数。 ifstream in(file); // 传入一个文件open函数会被自动调用 in.close(); // 同样的当我们销毁一个fstream对象时close会自动被调用2.1文件模式 ​ 每个流都有一个关联的文件模式。 对于上面的模式对流有一定的限制 只可以对ofstream或fstream对象设定out模式只可以对ifstream或fstream对象设定in模式只有当out被设定时才可以使用trunc模式。即使没有指定trunc以out模式打开的文件也会被截断只要truc模式没被设定就可以设定app模式。在app模式下。即使没有显式指定out模式文件也总是以输出方式打开 每个文件流类型都定义了一个默认的文件模式ifstream默认以in模式打开ofstream默认以out打开fstream默认以in和out打开。 ​ 在只使用out时打开的文件的内容会被清空所以需要加上app模式把新的内容添加到文件末尾。 三、string流 3.1istringstream ​ 处理文本或者单个单词可以使用。 struct PersonInfo {string name;vectorstring phone; }int main() {string line, word;vectorPersonInfo people;while (getline(cin, line)) { // 读取一行输入PersonInfo info;istringstream record(line); // 把读取的输入存到istringstream流中record info.name; // 读取名字while (record word) // 读取电话号码 line中含有名字和电话号码这里意思就是把剩余的文件也就是电话号码读取出来用word代替info.phones.push_back(word);people.push_back(info);} }3.2ostringstream ​ 用于输出文本等操作。比如上面我们已经读入若干人的姓名和电话号码需要逐个验证号码的正确性并输出。 for (const auto entry : people) { // 循环读取每个人的信息ostringstream formatted, badNums; // 定义两个流分别保存正确和错误信息for (const auto nums : entry.phones) { // 检查号码的正确性if(!valid(nums)) {badNums nums; // 存入流}else {formatted format(nums) // 存入流}}...//打印错误的和正确的内容...if(badNums.str().empty())os entry.name formatted.str() endl;elsecerr Input error entry.name invalid number(s) badNums.str() endl; }
http://www.dnsts.com.cn/news/203362.html

相关文章:

  • 免费制作个人网站rewrite wordpress
  • 阿里巴巴做网站的沧州品牌网站建设
  • 在后台怎么做网站内链建设个人网站刷
  • wordpress网站添加阅读全文合肥网站seo报价
  • 前端直播网站怎么做wordpress3.1.3漏洞
  • 做车贴网站宁波城乡建设网站
  • 网站建设情况调研报告哪个网站可以做编程题
  • 武功县住房与城乡建设局网站企业信用信息查询公示系统上海
  • 免费背景图片素材网站网页浏览器没有声音
  • 网站产品详情用哪个软件做的装饰公司接单技巧
  • 大型菜谱网站建设企业服务建设网站
  • 如何评价一个网站做的好不好lamp 搭建wordpress
  • 公司多个门户是做二级域名还是做多个网站深圳网站建设开发
  • 美妆网站设计安卓app制作软件
  • 碧桂园事件全过程福州seo关键词排名
  • 社交网站建设技术能看的网站给我一个呗
  • 软件优化网站中铁建设集团招聘官网
  • 南通网站制作推广iis网站属性
  • 网站高端建设开发公司设计师培训内容
  • 网站建设工作室起名深圳网页设计报价
  • 关于征求网站建设wordpress互动插件
  • 一站式装修公司有哪些阿里邮箱登录
  • 做网站群的公司商城站时刻表
  • 网站开发学什么专业百度大盘指数
  • 网站效果检测制作网站需要哪些素材
  • 网站开发 动易彩票网站怎么做代理
  • dedecms企业网站模板如何推广自己的微信
  • 洛阳做网站找哪家好长沙品牌网站制作服务报价
  • 蓝众建站_专业网站建设模板ppt免费
  • 画册设计报价明细表南昌seo网站建设