jjzjj

libboost_iostreams

全部标签

c++ - iostreams中如何处理浮点溢出

我有一些非常简单的代码:#include#includeusingnamespacestd;intmain(){stringstreamis("1.02.01e-5001e50012.0");doubled={17.0,17.0,17.0,17.0,17.0};for(inti=0;i>d[i]){cout当我用g++4.1.2编译这段代码并在Redhat5.10(相同的编译器)上运行它时,我得到了输出:ConversionsucceededConversionsucceededConversionfailedConversionfailedConversionsucceeded120

c++ - boost::iostream zlib 将多个文件压缩到一个存档中

我无法将一堆文件打包到一个存档中。boost文档在这个主题上非常有限,我已经在网上搜索了几个小时,但我找不到解决方案。到目前为止我有什么:boost::filesystem::ofstreamofsArchive("some.zip");boost::iostreams::filtering_ostreambufoutFilter;boost::iostreams::zlib_paramszparam(boost::iostreams::zlib::default_compression);try{//setupthefilteroutFilter.strict_sync();outF

c++ - 为什么 iostream 对象不重载 operator bool?

在thisanswer我谈到了使用std::ifstream对象到bool的转换来测试流是否仍处于良好状态。我查看了Josuttis的书以获取更多信息(如果您感兴趣,请参阅第600页),事实证明iostream对象实际上重载了operatorvoid*。当流是错误的(可以隐式转换为false)时它返回一个空指针,否则返回一个非空指针(隐式转换为true)。他们为什么不直接重载operatorbool? 最佳答案 看起来C++0x标准部分27.4.4.3有答案(强调我的)。operatorunspecified-bool-type()

c++ - std::iostream 是非阻塞的吗?

根据Boost.Iostreams的提升引用(在第3.6节中,最底部):http://www.boost.org/doc/libs/1_64_0/libs/iostreams/doc/index.htmlAlthoughtheBoost.IostreamsFilterandDeviceconceptscanaccommodatenon-blockingi/o,theC++standardlibrarystreamandstreambufferinterfacescannot,sincetheylackameanstodistinguishbetweentemporaryandperma

c++ - iostream线程安全,cout和cerr一定要分开加锁吗?

我理解为避免输出混合,多个线程对cout和cerr的访问必须同步。在同时使用cout和cerr的程序中,单独锁定它们是否足够?还是同时写入cout和cerr仍然不安全?编辑说明:我知道cout和cerr在C++11中是“线程安全的”。我的问题是不同线程同时写入cout和写入cerr是否会像两次写入cout那样相互干扰(导致交错输入等)。 最佳答案 如果你执行这个函数:voidf(){std::cout从多个线程中,您将获得两个字符串的或多或少的随机交错,"Hello,"和"world\n"。那是因为有两个函数调用,就好像你写了这样的

c++ - C++ iostream 的自定义操纵器

我想为ostream实现一个自定义操纵器,以对插入到流中的下一个项目进行一些操作。例如,假设我有一个自定义操纵器quote:std::ostringstreamos;std::stringname("Joe");os操纵器quote将引用name以产生:SELECT*FROMcustomersWHEREname='Joe'我该如何着手实现它?谢谢。 最佳答案 向C++流添加操纵器特别困难,因为无法控制操纵器的使用方式。可以将新的语言环境注入(inject)流中,流中安装了控制数字打印方式的方面,但不控制字符串的输出方式。然后问题仍然

c++ - 我怎样才能使 Unicode iostream i/o 在 Windows 和 Unix 环境下都能工作?

注意:这是一个question-with-answer为了记录其他人可能会觉得有用的技术,并可能了解其他人的更好解决方案。请随时添加评论或问题作为评论。也请随时添加其他答案。:)问题#1:通过流对Unicode的控制台支持在WindowsAPI级别受到严格限制。可用于普通桌面应用程序的唯一相关代码页是65001,UTF-8。然后交互式输入在API级别失败,甚至非ASCII字符的输出也会失败——C++标准库实现不提供解决此问题的方法。#include#includeusingnamespacestd;automain()->int{wstringusername;wcoutH:\pers

c++ - 有没有办法在 Windows 的 basic_iostream 上获得非锁定流插入/提取?

我是一名C++开发人员,主要在Solaris和Linux上编程,直到最近,当我被迫创建一个针对Windows的应用程序时。我一直在使用基于TCP套接字支持的C++I/O流的通信设计。该设计基于单个线程从流中连续读取(大部分时间阻塞在套接字读取等待数据),而其他线程通过同一流发送(通过互斥锁同步)。当移动到Windows时,我选择使用boost::asio::ip::tcp::iostream来实现套接字流。我很沮丧地发现,上面的多线程设计导致了Windows上的死锁。看来operator,std::basic_string)声明一个“哨兵”,它为输入和输出操作锁定整个流。由于我的读取线

C++的#include <iostream>详解

1.预处理器编译指令#include2、iostream用于存储iostream类库的源文件,在这个程序中用于提供输出这项功能。C++/C++11中头文件iostream定义了标准输入/输出流对象。包含了iostream也自动包含了ios、streambuf、istream、ostream和iosfwd。3、#include头文件,用于引用后面的中的文件中的代码,在这个函数中用于提取iostream文件中的代码,并编译使用其输出功能。4.编译指令usingnamespacestd;namespace是指标识符的各种可见范围。命名空间用关键字namespace来定义。命名空间是C++的一种机制,

c++ - 找不到 Swift 编译器错误 'iostream'

我试图实现一个我在github上找到的项目。https://github.com/hossamghareeb/Facebook-POP-Tutorial当我实现.h和.m文件时,我遇到了一个错误,提示XCode找不到我的“iostream”文件。我在SWIFT工作,使用bridging-headers来使用框架。当我尝试构建原始项目时它可以工作,但我的总是失败。如何添加我的iostream文件?提前致谢! 最佳答案 Swift桥接不支持ObjectiveC++文件。这意味着任何使用或公开C++实体的header(如std::vect