当前位置:首页 » 《关于电脑》 » 正文

[C++][IO流][流输入输出][截断理解]详细讲解

9 人参与  2024年10月23日 08:42  分类 : 《关于电脑》  评论

点击全文阅读


目录

1.流输入输出说明1.<<执行顺序2.>>执行顺序 2.截断(trunc)理解


1.流输入输出说明

1.<<执行顺序

链式操作的顺序:当使用多个<<操作符进行链式插入时,执行顺序是从左到右的 每个<<操作都将数据插入到前一个流的输出中 设置流状态: 在执行<<操作之前,所有设置(如std::setw(), std::setfill(), std::hex等)都会影响到后续插入的操作这些设置是全局性的,一旦设置,它们会持续影响后续的所有插入,直到再次改变或重置 插入数据: 一旦流状态被设置好,流会根据当前的格式化状态(如宽度、填充字符和进制)处理随后的插入操作每次插入操作都会根据当前流的状态输出格式化后的结果 示例代码
ss << std::setw(2) << std::setfill(‘0’) << std::hex \<< distribution(generator);

2.>>执行顺序

>>运算符用于从输入流中提取数据,其执行顺序和影响顺序与<<有一些相似之处区别:流状态: 在执行>>操作之前,流的状态(例如有效性、错误状态、EOF等)会影响后续的提取操作 如果流的状态是错误的(流已经到达结束或遇到读取错误),则提取操作将失败 一旦流读取失败,后续的>>操作将不会执行,直到流状态被重置

2.截断(trunc)理解

文件阶段的含义截断到零:如果打开一个已存在的文件并以std::ios::trunc模式打开它,文件的所有内容将被删除,文件的大小变为零 这意味着你会清空文件中的所有数据 指定长度的截断:虽然C++的标准库没有直接提供指定长度截断的功能,但可以通过其他系统调用(如 POSIX 中的 ftruncate)实现 形象理解:截断在文件操作中的通常意义是丢弃文件的原有内容,并准备写入新的数据 清空文件:如果文件已经存在,它的内容会被清空,文件大小变为零写入新内容:接下来可以写入新的数据,这些新数据将替代原有的内容 注意事项数据丢失:使用trunc会永久删除文件中的数据,因此在使用时需要小心文件必须存在:对于trunc模式,文件必须已存在,否则会出现错误

点击全文阅读


本文链接:http://zhangshiyu.com/post/175920.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1