jjzjj

libboost_iostreams

全部标签

c++ - iostream,一些问题

我见过人们做这样的事情......istringstreamibuf;if(ibuf>>zork>>iA>>Comma>>iB)现在我猜这个值取决于>>iB暴露的内容,但到底是什么以及它意味着什么?true是否意味着提取了所有ietms?此外,在像这样的表达式之后ibuf>>zork>>iA>>Comma>>iB;有没有办法找出提取了多少个字符和项目? 最佳答案 这是因为istream对象的两个属性:istreams在每次提取后返回自己(>>>运算符)以允许链接多个提取(a>>b>>c)istreams在通过重载booloperat

c++ - 如何在 C++ 中使用旧的 iostream.h (Visual Studio 2010)

我有一个MicrosoftVisualC++6.0项目并使用MSVSProfessional2010试用版成功转换它。没有发生转换问题。但是,在构建转换后的项目时,它告诉我找不到“iostream.h”。我知道新的标准化“iostream”和“usingnamespacestd”修复。但我需要使用旧的iostream.h。有没有办法做到这一点?原因是,该项目依赖于使用旧iostream.h的旧静态库。有什么建议吗? 最佳答案 如果您有依赖iostream.h的源代码,请更改它。如果您有绝对不能更改的源代码,请自己编写iostream

c++ - 尝试包含 '#include <boost/regex.hpp>' 时,我得到 : 1>LINK : fatal error LNK1104: cannot open file 'libboost_regex-vc100-mt-gd-1_39.lib'

不知道为什么会这样,我从here下载了库虽然我有一个名为“libboost_regex-vc90-mt-gd-1_39.lib”的库,但我没有一个名为“libboost_regex-vc100-mt-gd-1_39.lib”的库,将vc90重命名为vc100就可以了但我不确定这是否是理想的解决方案?#include"stdafx.h"#include#include#include#defineBOOST_ALL_NO_LIBint_tmain(intargc,_TCHAR*argv[]){boost::arraya;boost::smatchs;getchar();return0;}

iostream 的 C++ 包装器类,使用流修饰符,如 std::endl 和 operator<<

这个问题在这里已经有了答案:std::endlisofunknowntypewhenoverloadingoperator(6个答案)关闭9年前。我目前正在为std::stringstream编写包装器我想转发所有operator通过我的类(class)调用std::stringstream.这现在工作得很好(感谢这个问题:wrapperclassforSTLstream:forwardoperator),但它仍然存在一个问题。假设我有以下代码:classStreamWrapper{private:std::stringstreambuffer;public:templatevoidw

c++ - 如果包含 <iostream>,则 operator== 不会编译

如果满足以下条件,则以下代码可以完美编译:我不包括或者我叫operator==作为alp::operator==.我想有问题和operator==,但我不知道是什么。我使用gcc7.3.0、clang++-6.0和goldbolt编译代码。总是同样的错误。问题是编译器试图转换operator==的参数至const_iterator,但为什么?(我想编译器没有看到我的operator==版本,而是寻找其他版本)。#include#include//commentandcompilenamespacealp{templatestructIterator{usingconst_iterato

c++ - 如何将我们自己的函数声明放入 C++ 的 iostream 库中?

ostream&tab(ostream&o){returno我想把这个声明放在iostream库中..我该怎么做?? 最佳答案 你不能。iostream库的内容由C++标准定义,并可能由系统中的每个C++程序共享。尽管您可以(实际上,标准在技术上禁止这样做)将东西注入(inject)到您自己程序的std命名空间中(但是由于潜在的名称冲突,这是一个坏主意),并且您可以定义你自己的库中的东西,你不能四处为每个人修改公共(public)库。 关于c++-如何将我们自己的函数声明放入C++的io

c++ - 使用 iostream read 和 signed char 时的未定义行为

我的问题类似于this但更具体一点。我正在编写一个函数来从使用小端表示的istream中读取一个32位无符号整数。在C中,这样的事情会起作用:#include#includeuint_least32_tfoo(FILE*file){unsignedcharbuffer[4];fread(buffer,sizeof(buffer),1,file);uint_least32_tret=buffer[0];ret|=(uint_least32_t)buffer[1]但是如果我尝试使用istream做类似的事情,我会遇到我认为未定义的行为uint_least32_tbar(istream&fi

c++ - libboost_log_setup.a 库的原因?

在最新的Boost1.54版本中,我看到了Boost.Log图书馆出现。当我编译整个Boost1.54时,我看到它为Log库生成了2个二进制文件:libboost_log.alibboost_log_setup.alibboost_log_setup.a库是什么原因?我应该什么时候链接它? 最佳答案 libboost_log_setup包含对日志记录的扩展支持。例如,在您的日志记录事件中使用格式化程序时,您将需要此库。顺便说一句,请注意您需要在libboost_log之前链接libboost_log_setup,因为第一个依赖于最后

c++ - 使用带有 int 作为字符类型的 iostreams 可以吗?

当试图找到thisquestion的答案时,我写了这个小测试程序:#include#include#include#include#includevoidwriteFile(){intdata[]={0,1,2,3,4,5,6,7,8,9,1000};std::basic_ofstreamfile("test.data",std::ios::binary);std::copy(data,data+11,std::ostreambuf_iterator(file));}voidreadFile(){std::basic_ifstreamfile("test.data",std::ios:

c++ - 有人可以提供使用 boost iostreams 查找、读取和写入 >4GB 文件的示例吗

我读到boostiostreams据说支持以半可移植方式对大文件进行64位访问。他们的常见问题解答提到64bitoffsetfunctions,但没有关于如何使用它们的示例。有没有人使用这个库来处理大文件?一个简单的例子,打开两个文件,寻找它们的中间,然后将一个文件复制到另一个文件会很有帮助。谢谢。 最佳答案 简答只包含#include并使用seek功能如boost::iostreams::seek(device,offset,whence);在哪里device是文件、流、streambuf或任何可转换为seekable的对象;of