草庐IT

ostream_joiner

全部标签

c++ - 简单来说,ostream中flush()的作用是什么

定义取自:http://www.cplusplus.com/reference/iostream/ostream/flush/,目前尚不清楚为什么该功能存在,以及您将使用它的目的。为什么不在每次写入流时调用flush()? 最佳答案 很可能,flush这个词正是来自您在现实生活中要冲洗的东西。厕所……所以让我们尝试用厕所做个比喻:每次将新的水滴入碗中时都要冲洗非常耗时,而且完全浪费水。在每个人都在努力保护环境的今天,这是一个大问题。那么你会怎么做呢?您可以通过将其全部保存并在最后刷新一次来缓冲它。如果出于某种原因,您总是可以在未完成

c++ - 如何从 C++ std::basic_ostream 派生并使 << 运算符虚拟?

我正在编写一个具有各种消息输出的类。我想让这个类通用并且独立于平台,所以我正在考虑将basic_ostream引用传递给它,它可以将所有消息转储到流中。通过这样做,如果类在控制台程序中使用,我可以将std::cout传递给它并显示在控制台窗口中。或者我可以将派生的ostream传递给它,并将消息重定向到某些UI组件,例如列表框?唯一的问题是数据插入器operator不是虚函数。如果我将派生类引用传递给它,则只会调用basic_ostream有解决办法吗? 最佳答案 NanZhang自己的回答,最初作为问题的一部分发布:跟进:好的,这

临时 ostream 对象的 C++ 问题

我想改造这个工作代码:ofstreamoutfile("my_file.txt");copy(v.begin(),v.end(),ostream_iterator(outfile));进入这个:copy(v.begin(),v.end(),ostream_iterator(ofstream("my_file.txt")));换句话说,我使用了ofstream对象的“匿名”或未命名版本。两个问题:(1)为什么第二次尝试失败?(2)第二次尝试在风格上是否更好,还是在C++中更好地保​​留所有内容的显式命名?我来自Python背景,其中对象始终是动态创建的。谢谢!!

c++ - 'ostream_iterator<int>' 的初始化没有匹配的构造函数

关于代码,为什么会报错,osteam_iterator是一个模板类,为什么'ostream_iterator'的初始化没有匹配的构造函数,请大家帮忙,谢谢。定义ostream_iterator模板>类_LIBCPP_VISIBLEostream_iteratorintmain(intargc,constchar*argv[]){vectorsentence1;sentence1.reserve(5);//设置每次分配内存的大小sentence1.push_back(1);sentence1.push_back(2);sentence1.push_back(3);sentence1.pu

c++ - Windows控制台下使用UTF-8输出的printf和std::ostream有什么区别

我有一个程序可以将UTF-8字符串打印到控制台:#includeintmain(){printf("МирPeaceΕιρήνη\n");return0;}我将控制台配置为使用TrueType字体(Lucida控制台),定义UTF-8代码页(chcp65001)使用MinGWGCC和VisualStudio2010编译该程序,它完美运行,我看到:输出:МирPeaceΕιρήνη我使用std::cout做同样的事情#includeintmain(){std::cout使用MinGWGCC和VisualStudio2010一样,这工作得很好我得到正方形,比正方形更多(每个非ASCII字母

c++ - 具有共享 streambuf 的 istream 和 ostream 对于双工 I/O 是相互线程安全的吗?

我已经为缓冲网络套接字I/O派生了一个自定义streambuf,覆盖下溢、上溢和同步,以便下溢与其他两个集相互线程安全,(我有单独的输入和输出内部缓冲区).这工作正常,但我想将它用于全双工I/O,其中一个线程可以输入而另一个线程正在输出,所以我想使用istream作为接收线程,使用ostream作为发送线程,同时共享网络streambuf因为它抽象了所有套接字的东西。我的问题是,如果输入和输出缓冲区是分开的,streambuf成员在多大程度上受istream上的输入操作的影响与受ostream上的输出操作影响的streambuf成员脱节?能够做到这一点会更好,而不是必须将套接字的东西从

c++ - 将 ostream 与 8、10 和 16 以外的碱基一起使用

我有一个多项式类,它的自然表示是它的系数。如果设置了系数,则二项式为1,三项式为1或2等。例如,在二项式中,X2+1表示为101;在三项式基础上,2X2+1表示为201。该类提供了一个operator重载。在内部,该类使用整数数组表示系数。所以我应该能够执行:ostringstreamoss;for(size_ti=0;i我遇到的问题是我不知道如何为8、10和16以外的基数配置ostream。ios_base提供std::oct,std::dec和std::hex对于流行的基地,但我看不出对不常用的基地有什么用。还有像C++Referenceonios_base这样的页面不讨论使用什么

c++ - 静态与成员运算符重载:std::operator<< 和 std::ostream::operator<<

ostreamC++类为operator提供了许多默认重载,但是它们的定义方式并不完全相同。overloads对于char类型,string类型和右值流被定义为免费namespace-作用域函数,例如:namespacestd{ostream&operator虽然overloads对于算术类型,streambuf,和流操纵器被定义为std::ostream的成员函数比如:namespacestd{ostream&ostream::operator我的问题这种区别有什么原因吗?我知道对这些运算符重载的调用略有不同(即ADL用于免费namespace-范围定义),因此我想可能出于优化目的而

c++ - 如何将 boost::iostreams::null_sink 用作 std::ostream

我想根据运行时给出的标志使我的输出详细/非详细。我的想法是,构建一个依赖于标志的std::ostream,例如:std::ostreamout;if(verbose){out=std::coutelse{//Redirectstdouttonullbyusingboost'snull_sink.boost::iostreams::stream_buffernull_out{boost::iostreams::null_sink()};//Somehowconstructastd::ostreamfromnullout}现在我坚持从这样一个boost流缓冲区构建一个std::ostrea

c++ - 制作 C++ 类 "Showable"(字符串、ostream)的最佳实践

我有一个值语义类,我希望它在与Haskells相同的意义上是“可显示的”Show类,或者Python提供了一个通用的__str__()功能。在C++中:我可以重载operator这样我就可以将我的类(class)输出到例如cout我可以重载operatorstd::string()所以我的类转换为std::string我可以重载operatorconstchar*()所以我的类转换为constchar*。我可以写一个str()成员(member),或to_string(...)免费功能这些功能中的每一个都可以根据另一个来定义。一个选项比其他选项更好吗?这些都是选项吗?给定c++11/1