马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
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模式,文件必须已存在,否则会出现错误
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |