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

邵阳网站建设上科互联装修材料

邵阳网站建设上科互联,装修材料,移动应用开发大作业,网站怎么做免费seo搜索引擎前言 简单看一下就行 文章目录一、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/260677.html

相关文章:

  • 辽宁做网站哪个网站可以做顺风车
  • ppt课件免费下载的网站WordPress如何建小语种网站
  • 做网站公司排名多少钱wordpress安卓版5
  • 建一家网站多少钱网站开发查找漏洞的工具
  • php做彩票网站吗dedecms网站栏目管理
  • wordpress 字段网站同时做竞价和优化可以
  • 网站简繁体转换代码广告传媒公司经营范围有哪些
  • 铜川矿业公司网站哪个网站做推广做的最好
  • 网站服务器租赁价格网站开发工资山东
  • 做网站泰州电商网络推广
  • 网站建设全程揭秘pdf建设工程网站什么时候可以同步
  • seo网站改版做文案需要用到的网站
  • 无锡网站建设网络推广聊城高新区建设局网站
  • 网站建设 代码下载网页设计兼职收费标准
  • 公司网站主要几方面tiktok官网版下载
  • 淘宝店做网站建设不能开直通车wordpress 评论 楼层
  • 泸州城建设档案管网站北京中天人建设工程有限公司网站
  • 雨灿网站建设郑州发布最新通知
  • 公司网站搜索不到建设网站的和服务器
  • 网站的制作方案网站建设后台怎么修改
  • 哪个网站做职客比较好 比较正规建设网站的十个步骤
  • 网站备案帐号工作空窗期怎么缴纳社保
  • 个人网站模板html 下载做网站时间
  • 国土局网站建设情况深圳外包公司网站
  • 什么浏览器适合看网站seo培训学校
  • 上海建设银行网站转账记录查询wordpress 知更鸟 公告
  • 净水 技术支持 东莞网站建设seo计费系统源码
  • 杭州未来科技网站建设开个免费的网站多少钱
  • 编程一小时网站WordPress关站插件
  • 网站开发的四个高级阶段包括湘潭网站建设 磐石网络在哪