草庐IT

libboost_iostreams

全部标签

c++ - c++中iostream header 的cout,cerr,clog有什么区别?什么时候用哪一个?

我尝试在互联网上研究cout、cerr和clog之间的区别,但找不到完美的答案。我仍然不清楚何时使用哪个。谁能通过简单的程序向我解释并说明何时使用哪一个的完美情况?我访问了thissite其中在cerr和clog上显示了一个小程序,但是那里得到的输出也可以使用cout得到。所以,我对每个人的确切用途感到困惑。 最佳答案 通常你使用std::cout来进行正常输出,std::cerr来处理错误,std::clog来处理“日志”"(可以表示任何你想要的意思)。主要区别在于std::cerr不像其他两个那样缓冲。相对于旧的Cstdout和

c++ - 谁设计/设计了 C+ +'s IOStreams, and would it still be considered well-designed by today' s 标准?

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.3年前关闭。Improvethisquestion首先,我似乎在征求主观意见,但这不是我所追求的。我很想听听关于这个话题的一些有充分根据的论点。希望深入了解现代流/序列化框架应该如何设计,我最近给自己买了一本StandardC++IOStreamsandLocalesbyAngelikaLangerandKlausKreft.我想,如果IOStreams设计得不好,它一开始就不会进入C++标准库。在阅读了本书的各个部分后,我开始怀疑I

c++ - C++ 标准是否要求 iostreams 性能不佳,或者我只是在处理一个糟糕的实现?

每次我提到C++标准库iostreams的缓慢性能时,我都会遇到一波不相信的事情。然而,我的分析器结果显示在iostream库代码(完全编译器优化)上花费了大量时间,并且从iostream切换到特定于操作系统的I/OAPI和自定义缓冲区管理确实提供了一个数量级的改进。C++标准库做了哪些额外的工作,标准是否要求,在实践中是否有用?或者某些编译器是否提供了与手动缓冲区管理相竞争的iostream实现?基准为了解决问题,我编写了几个简短的程序来练习iostreams内部缓冲:将二进制数据放入ostringstreamhttp://ideone.com/2PPYw将二进制数据放入char[]

c++ - 如何连接 Boost 序列化和 iostream 以将对象序列化和 gzip 到字符串?

我一直在使用Boost序列化库,它实际上非常好,它可以让我制作简单的包装器来将我的可序列化对象保存为字符串,如下所示:namespacebar=boost::archive;namespacebio=boost::iostreams;templateinlinestd::stringsaveString(constT&o){std::ostringstreamoss;bar::binary_oarchiveoa(oss);oainlinevoidsaveFile(constT&o,constchar*fname){std::ofstreamofs(fname,std::ios::out

c++ - 如何连接 Boost 序列化和 iostream 以将对象序列化和 gzip 到字符串?

我一直在使用Boost序列化库,它实际上非常好,它可以让我制作简单的包装器来将我的可序列化对象保存为字符串,如下所示:namespacebar=boost::archive;namespacebio=boost::iostreams;templateinlinestd::stringsaveString(constT&o){std::ostringstreamoss;bar::binary_oarchiveoa(oss);oainlinevoidsaveFile(constT&o,constchar*fname){std::ofstreamofs(fname,std::ios::out

c++ - <iostream> 与 <iostream.h> 与 "iostream.h"

在C++中包含头文件时,和...有什么区别在标志中包含.h部分与不包括.h部分?#include与#include将标题名称用双引号括起来还是用符号括起来?#include与#include"iostream.h" 最佳答案 简而言之:iostream.h已弃用——它是原始的Stroustrup版本。iostream是标准委员会的版本。通常,编译器将它们都指向同一事物,但一些较旧的编译器不会具有较旧的编译器。在一些奇怪的情况下,它们既存在又不同(以支持遗留代码),然后您必须具体。""与相比只是意味着在进入库之前检查本地目录中的头文件

c++ - <iostream> 与 <iostream.h> 与 "iostream.h"

在C++中包含头文件时,和...有什么区别在标志中包含.h部分与不包括.h部分?#include与#include将标题名称用双引号括起来还是用符号括起来?#include与#include"iostream.h" 最佳答案 简而言之:iostream.h已弃用——它是原始的Stroustrup版本。iostream是标准委员会的版本。通常,编译器将它们都指向同一事物,但一些较旧的编译器不会具有较旧的编译器。在一些奇怪的情况下,它们既存在又不同(以支持遗留代码),然后您必须具体。""与相比只是意味着在进入库之前检查本地目录中的头文件

c++ - 链接器错误 LNK1104 与 'libboost_filesystem-vc100-mt-s-1_49.lib'

在以Release模式将我的程序链接到boost::filesystem模块的过程中,我收到下一个错误:errorLNK1104:cannotopenfile'libboost_filesystem-vc100-mt-s-1_49.lib'但是,在boost\stage\lib目录中,我只有下一个引用文件系统模块的库:libboost_filesystem-vc100-mt-1_49.liblibboost_filesystem-vc100-mt-gd-1_49.lib我的问题是:为什么VC++要求'libboost_filesystem-vc100-mt-s-1_49.lib?我应该

c++ - 链接器错误 LNK1104 与 'libboost_filesystem-vc100-mt-s-1_49.lib'

在以Release模式将我的程序链接到boost::filesystem模块的过程中,我收到下一个错误:errorLNK1104:cannotopenfile'libboost_filesystem-vc100-mt-s-1_49.lib'但是,在boost\stage\lib目录中,我只有下一个引用文件系统模块的库:libboost_filesystem-vc100-mt-1_49.liblibboost_filesystem-vc100-mt-gd-1_49.lib我的问题是:为什么VC++要求'libboost_filesystem-vc100-mt-s-1_49.lib?我应该

c++ - fatal error : iostream. h 没有这样的文件或目录

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Nosuchfileiostream.hwhenincluding即使在使用.cpp扩展名命名源文件之后。我的编译器在命令提示符和代码块中都给出了这个错误。我该如何解决这个问题?#includeintmain(){cout 最佳答案 标准C++中不存在该header。它是1990年代之前的一些编译器的一部分,但肯定不是C++的一部分。使用#include反而。所有的库类都在std::命名空间,例如std::cout.另外,扔掉任何提到你所说的事情的书或笔记