草庐IT

Iostreams

全部标签

c++ - boost - ASIO 与 IOStreams TCP

我是Boost的新手。我一直在为sokcets/网络/TCP东西寻找一个简单的跨平台解决方案,并找到了Boost。快速浏览一下,似乎有两个TCP相关类:一个在Iostreams中,一个在Asio中。我(非常)确定,如果我深入研究这两个库的相应文档,我将能够弄清楚每个库的用途,但是有人可以简短地解释一下区别是什么,或者每个库的用途是什么吗? 最佳答案 Boost.Iostreams中有TCP流吗?ASIO是一个完整的全功能网络库,支持使用通用回调API的异步I/O。ip::tcp::iostream类(它是ASIO的一部分)构建在AS

c++ - 如何在 Windows 上使用 gzip 和 bzip2 支持构建 boost iostreams

如何在gzip和bzip2支持下构建boost的iostreams库? 最佳答案 我不是专家,但这对我有用。选项1(直接来自源代码)下载zlib的源文件对于bzip2.解压下载到目录,移动目录到你喜欢的地方。我不得不避免C:\ProgramFiles(x86)\因为我无法让它与目录名称中的空格一起使用,所以我创建了C:\Sys\并使用它。使用boost的权限(以管理员身份运行)打开命令提示符,转到您的boost目录,例如C:\ProgramFiles(x86)\boost\boost_1_50_0\并输入b2.exe--with-i

c++ - 为什么 C++ STL iostreams 不是 "exception friendly"?

我习惯了DelphiVCL框架,其中TStreams会在错误时抛出异常(例如,找不到文件,磁盘已满)。我正在移植一些代码以改用C++STL,并且已被iostreams捕获,默认情况下不抛出异常,而是设置badbit/failbitflags而是。两个问题...a:为什么会这样-对于从一开始就包含异常的语言来说,这似乎是一个奇怪的设计决定?b:如何最好地避免这种情况?我可以生成像我期望的那样抛出的shim类,但这感觉就像重新发明轮子。也许有一个BOOST库可以更明智地做到这一点? 最佳答案 C++从一开始就没有异常(exception

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++ - 将 double 指数的可移植打印到 C++ iostreams

我想以可移植的方式(GCC、clang、MSVC++)将double值打印到std::cout以便输出在所有平台上都是相同的。我对指数的格式有疑问。下面的程序#includeintmain(){std::coutGCC有这个输出:1e-08和下面的MSVC输出1e-008如何使两个输出相同?如果这是一个愚蠢的问题,我很抱歉,但到目前为止我还没有找到答案。所有格式似乎都围绕尾数之前所有内容的格式演变......编辑:GCC的输出是1e-08而不是1e-8(如最初所述),因此它符合。很抱歉造成困惑。EDIT2:实际上根据Dietmar的评论将“尾数”重命名为“指数”。Therealsois

c++ - 将 double 指数的可移植打印到 C++ iostreams

我想以可移植的方式(GCC、clang、MSVC++)将double值打印到std::cout以便输出在所有平台上都是相同的。我对指数的格式有疑问。下面的程序#includeintmain(){std::coutGCC有这个输出:1e-08和下面的MSVC输出1e-008如何使两个输出相同?如果这是一个愚蠢的问题,我很抱歉,但到目前为止我还没有找到答案。所有格式似乎都围绕尾数之前所有内容的格式演变......编辑:GCC的输出是1e-08而不是1e-8(如最初所述),因此它符合。很抱歉造成困惑。EDIT2:实际上根据Dietmar的评论将“尾数”重命名为“指数”。Therealsois