jjzjj

ostringstream

全部标签

c++ - std::ostringstream 问题

我可以std::ostringstreamoss;oss为什么我不能:((std::ostringstream())谢谢! 最佳答案 运算符返回基类型ostream,而str成员函数仅存在于派生类型上ostringstream. 关于c++-std::ostringstream问题,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2196121/

C++ Int 到 String 通过使用 ostringstream 或 stringstream

我一直在使用stringstream将Integer转换为String,但后来我意识到可以使用ostringstream完成相同的操作。当我使用.str()时,它们之间有什么区别?另外,有没有更有效的方法将整数转换为字符串?示例代码://usingostringstreamostringstreams1;inti=100;s1 最佳答案 还有第三个你没有提到,istringstream,你不能使用(你可以,但它会有所不同,你不能将转换为istringstream)。stringstream既是ostringstream和一个istr

c++ - 如何将字符数组转换为基于字符串的十六进制流 (ostringstream)

在C++中(在带有gcc的Linux上)我想将字节数组(vector)放入ostringstream中或string.我知道我可以使用sprintf但它似乎不是使用char*的最佳方式还有。顺便说一句:thislinkdidnothelp编辑:到目前为止,所有答案都有效。但我并不是说我想将字节/十六进制值转换为它们的字符串表示形式,例如vector={0,1,2}->string="000102".抱歉缺少但重要的细节 最佳答案 获得赞成票的机会很小,但由于它正是OP所要求的,而且没有其他答案,包括选定的答案,奇怪的是,这样做:#i

c++ - std::ostringstream 运算符重载搜索顺序?

我有以下类(class):namespace{classMimeLogger:publicstd::ostringstream{public:MimeLogger(){}~MimeLogger(){LOGEVENT(logModuleWSE,logEventDebug,logMsgWSETrace1,str());}};}当我这样做时:MimeLogger()第一个"Hello"字符串被视为void*.如果我调试代码,"Hello"传递到std::basic_ostream::operator并打印为指针值,而不是字符串。第二个字符串,"World"被正确地传递到全局重载charcon

c++ - 如何为 boost::tuple 编写一个 `<<` 运算符?

在下面的示例代码中,它表明可以从第一个模板参数隐式创建boost::tuple。因此,我无法写运算符,因为它变得模棱两可。我也不明白为什么ostringstream&也是模棱两可的。这没有任何隐式构造。为什么这也会产生模棱两可的错误?#include#include#include#includeusingnamespacestd;classMyclass{};typedefboost::tupleMytuple;ostringstream&operator();//os_();//ErrorbecauseintisimplicitlyconvertedintoMytuple.WHYY

c++ - 有什么方法可以在不复制的情况下从 std::ostringstream 获取 std::string_view ?

我知道你不能在不复制的情况下从std::ostringstream中提取std::string(Creatinganinputstreamfromconstantmemory)。但是有可能得到一个std::string_view吗? 最佳答案 字符串流不需要将它们的数据存储在一个连续的数组中。string_view当然是连续字符串的View。所以不,你想要的是不可能的。最好等到C++20,那时我们将支持移入/移出字符串流。 关于c++-有什么方法可以在不复制的情况下从std::ostri

c++ - 为什么 ostringstream 会去掉 NULL?

我有一个字符串,其最后一部分(后缀)需要更改多次,并且我需要生成新的字符串。我正在尝试使用ostringstream来执行此操作,因为我认为使用流比字符串连接更快。但是当前面的后缀大于后面的后缀时,它就会变得困惑。流也剥离空字符。#include#includeusingnamespacestd;intmain(){ostringstreamos;streampospos;os输出HelloUniverseHelloWorldrse但我想要HelloWorld。我该怎么做呢?有没有其他方法可以更快地做到这一点?编辑:附加std::ends有效。但是想知道它在内部是如何工作的。还想知道是

c++ - 是否可以更改 ostringstream rdbuf?

我试试下面的代码:ostringstreamoss;streambuf*psbuf,*backup;backup=oss.rdbuf();psbuf=cout.rdbuf();oss.rdbuf(psbuf);oss但不幸的是我得到了这个错误:error:toomanyargumentstofunctioncall,expected0,have1oss.rdbuf(backup);但是rdbuf有两个重载:get(1)basic_streambuf*rdbuf()const;set(2)basic_streambuf*rdbuf(basic_streambuf*sb);是的,我知道它说

c++ - std::ostringstream 未返回有效字符串

我正在尝试使用std::ostringstream将数字转换为字符串(char*),但它似乎不起作用。这是我的代码:#include#includeintmain(){std::ostringstreamout;out生成的消息框内根本没有文本。这让我相信对out.str().c_str()的调用返回了一个无效的字符串,但我不确定。由于到目前为止我已经对这个程序进行了缩减,但问题仍然存在,所以我一定是犯了一个令人尴尬的简单错误。感谢您的帮助! 最佳答案 out.str()返回一个std::string按值,这意味着您正在调用.c_s

c++ - 输出到字符串的 cout 等价物是什么?

我应该已经知道了,但是...printf是sprintf就像cout是____?请举个例子。 最佳答案 听起来您正在寻找std::ostringstream.当然,C++流不使用格式说明符,例如C的printf()类型的函数;他们使用manipulators.示例,根据要求:#include#include#includestd::stringstringify(doublex,size_tprecision){std::ostringstreamo;o 关于c++-输出到字符串的cou