c++11 标准模板(STL)(std::basic_ofstream)(五)

定义于头文件 <fstream>

template<

    class CharT,
    class Traits = std::char_traits<CharT>

> class basic_ofstream : public std::basic_ostream<CharT, Traits>

 类模板 basic_ofstream 实现文件上基于流的高层输出操作。它将 std::basic_ostream 的高层接口赋予基于文件的流缓冲( std::basic_filebuf )。

std::basic_ofstream 典型实现只保有一个非导出成员: std::basic_filebuf<CharT, Traits> 的实例。

 亦对常用字符类型定义二个特化:

类型定义
ofstreambasic_ofstream<char>
wofstreambasic_ofstream<wchar_t>

文件操作

关闭关联文件

std::basic_ofstream<CharT,Traits>::close

void close();

关闭关联文件。

等效地调用 rdbuf()->close() 。若操作期间出现错误,则调用 setstate(failbit) 。

参数

(无)

返回值

(无)

注意

此函数为 basic_ofstream 的析构函数在流对象离开作用域时调用,通常不直接调用。

调用示例

#include <fstream>
#include <utility>
#include <string>
#include <iostream>int main()
{std::ofstream ofstream1("test1.txt", std::ios::in);std::ofstream ofstream2("test2.txt", std::ios::in);std::ofstream ofstream3("test3.txt", std::ios::in);std::cout << "ofstream1 is: " << (ofstream1.is_open() ? "true" : "false") << std::endl;std::cout << "ofstream2 is: " << (ofstream2.is_open() ? "true" : "false") << std::endl;std::cout << "ofstream3 is: " << (ofstream3.is_open() ? "true" : "false") << std::endl;std::cout << std::endl;std::cout << "std::ofstream close" << std::endl;ofstream1.close();ofstream2.close();ofstream3.close();std::cout << std::endl;std::cout << "ofstream1 is: "<< (ofstream1.is_open() ? "true" : "false") << std::endl;std::cout << "ofstream2 is: "<< (ofstream2.is_open() ? "true" : "false") << std::endl;std::cout << "ofstream3 is: "<< (ofstream3.is_open() ? "true" : "false") << std::endl;std::cout << std::endl;return 0;
}

输出

 

非成员函数

特化 std::swap 算法

std::swap(std::basic_ofstream)

template< class CharT, class Traits >
void swap( basic_ofstream<CharT,Traits> &lhs, basic_ofstream<CharT,Traits> &rhs );

 为 std::basic_ofstream 特化 std::swap 算法。交换 lhsrhs 的状态。等效地调用 lhs.swap(rhs) 。

参数

lhs, rhs-要交换状态的流

返回值

(无)

异常

(无)

调用示例

#include <fstream>
#include <utility>
#include <string>
#include <iostream>int main()
{std::ofstream ofstream1("test1.txt", std::ios::out);std::cout << "ofstream1 is: "<< (ofstream1 ? "true" : "false") << std::endl;std::ofstream ofstream2("test2.txt", std::ios::out);std::cout << "ofstream2 is: "<< (ofstream2 ? "true" : "false") << std::endl;std::cout << std::endl;ofstream1 << "hello 1" << " ";ofstream2 << "hello 2" << " ";//为 std::basic_ofstream 特化 std::swap 算法。//交换 lhs 与 rhs 的状态。等效地调用 lhs.swap(rhs) 。std::cout << "std::swap(ofstream1, ofstream2) " << std::endl;std::swap(ofstream1, ofstream2);ofstream1 << "hello 1" << " ";ofstream2 << "hello 2" << " ";ofstream1.close();ofstream2.close();std::cout << std::endl;std::ifstream ifstream1("test1.txt", std::ios::in);std::cout << "ifstream1 is: "<< (ifstream1.is_open() ? "true" : "false") << std::endl;if (ifstream1.is_open()){std::cout << ifstream1.rdbuf() << std::endl;}std::cout << std::endl;std::ifstream ifstream2("test2.txt", std::ios::in);std::cout << "ifstream2 is: "<< (ifstream2.is_open() ? "true" : "false") << std::endl;if (ifstream2.is_open()){std::cout << ifstream2.rdbuf() << std::endl;}std::cout << std::endl;return 0;
}

输出

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/55914.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人驾驶实战-第八课(定位算法)

无人驾驶中定位的作用&#xff1a; 定位高精度地图&#xff1a;提供当前位置的静态环境感知 &#xff08;车道线/交通指示牌/红绿灯/柱子/建筑物/等&#xff09; 定位动态物体感知&#xff1a;将感知到的动态物体正确放入静态环境 定位获取位置姿态&#xff1a;用于路径规划/决…

Qt实现自定义QDoubleSpinBox软键盘

在Qt应用程序开发中&#xff0c;经常会遇到需要自定义输入控件的需求。其中&#xff0c;对于QDoubleSpinBox控件&#xff0c;如果希望在点击时弹出一个自定义的软键盘&#xff0c;以便用户输入数值&#xff0c;并将输入的值设置给QDoubleSpinBox&#xff0c;该如何实现呢&#…

冠达管理投资前瞻:三星加码机器人领域 大信创建设提速

上星期五&#xff0c;沪指高开高走&#xff0c;盘中一度涨超1%打破3300点&#xff0c;但随后涨幅收窄&#xff1b;深成指、创业板指亦强势震动。截至收盘&#xff0c;沪指涨0.23%报3288.08点&#xff0c;深成指涨0.67%报11238.06点&#xff0c;创业板指涨0.95%报2263.37点&…

Ubuntu服务器ELK部署与实践

文章目录 1. Docker安装2. 拉镜象2.1 ElastciSearch2.2 Kibana2.3 logstash 3. 数据展示 1. Docker安装 看之前的文章 docker ubuntu完全卸载docker及再次安装 Ubuntu安装 Docker 此外&#xff0c;Docker偶尔会出现这种问题dial tcp: lookup registry-1.docker.io on 192.168.1…

【ArcGIS Pro二次开发】(57):地图系列

在ArcGIS Pro中&#xff0c;有一个地图系列&#xff0c;可以在一个布局中导出多个地图。 在SDK中为ArcGIS.Desktop.layout.MapSeries类和映射系列导出选项&#xff0c;可以以支持多页导出。 MapSeries类提供了一个静态CreateSpatialMapSeries方法&#xff0c;该方法使用指定的…

输入框长度在XSS测试中如何绕过字符长度限制

大家好&#xff0c;这是我编写的第一篇文章&#xff0c;之所以会分享这个故事&#xff0c;是因为我花了几个晚上的时间&#xff0c;终于找到了解决某个问题的方法。故事如下&#xff1a; 几个月前&#xff0c;我被邀请参加一个非公共的漏洞悬赏项目&#xff0c;在初期发现了一些…

Amazon Aurora Serverless v2 正式发布:针对要求苛刻的工作负载的即时扩展

我们非常兴奋地宣布&#xff0c;Amazon Aurora Serverless v2 现已面向 Aurora PostgreSQL 和 MySQL 正式发布。Aurora Serverless 是一种面向 Amazon Aurora 的按需自动扩展配置&#xff0c;可让您的数据库根据应用程序的需求扩展或缩减容量。 亚马逊云科技开发者社区为开发者…

数学建模-爬虫系统学习

尚硅谷Python爬虫教程小白零基础速通&#xff08;含python基础爬虫案例&#xff09; 内容包括&#xff1a;Python基础、Urllib、解析&#xff08;xpath、jsonpath、beautiful&#xff09;、requests、selenium、Scrapy框架 python基础 进阶&#xff08;字符串 列表 元组 字典…

UNIX 入门

与 UNIX 建立连接启动会话登录命令提示符修改口令退出系统 简单的 UNIX 命令命令格式ls 命令who 命令虚拟终端 tty伪终端 ptywho am i 命令 cal 命令help 命令man 命令 shell 概述shell 命令更换 shell临时更改 shell永久更改 shell 登录过程 与 UNIX 建立连接 启动会话 要启…

【已解决】Java 中使用 ES 高级客户端库 RestHighLevelClient 清理百万级规模历史数据

&#x1f389;工作中遇到这样一个需求场景&#xff1a;由于ES数据库中历史数据过多&#xff0c;占用太多的磁盘空间&#xff0c;需要定期地进行清理&#xff0c;在一定程度上可以释放磁盘空间&#xff0c;减轻磁盘空间压力。 &#x1f388;在经过调研之后发现&#xff0c;某服务…

docker版jxTMS使用指南:使用jxTMS采集数据之一

本文讲解了如何jxTMS的数据采集与处理框架并介绍了如何用来采集数据&#xff0c;整个系列的文章请查看&#xff1a;docker版jxTMS使用指南&#xff1a;4.4版升级内容 docker版本的使用&#xff0c;请查看&#xff1a;docker版jxTMS使用指南 4.0版jxTMS的说明&#xff0c;请查…

QT信号和槽

QT信号和槽 为了分析代码方便&#xff0c;我们要给控件改名字。要通俗易懂。 信号:信号就是指控件发出的特定的信号 槽: 槽就是槽函数的意思&#xff0c;我们可以把槽函数绑定在某一个控件的信号上。类似于中断函数 自动关联&#xff0c;信号和槽函数 手动关联