草庐IT

Stringstream

全部标签

c++ - 如何将 stringstream 内容放入 char 而不是 string 类型?

大家都知道stringstream.str()需要一个字符串变量类型来存储stringstream.str()的内容。我想将stringstream.str()的内容存储到char变量或char数组或指针中。这有可能吗?请用你的答案写一个简单的例子。 最佳答案 为什么不只是std::strings=stringstream.str();constchar*p=s.c_str();?编辑:请注意,您不能随意提供p在你的函数之外:它的生命周期被绑定(bind)到s的生命周期,所以您可能想要复制它。编辑2:正如@David所暗示的,上面的

c++ - Stringstream 提取整数

为什么我无法将整数值提取到Num变量中?#include#include#includeusingnamespacestd;intmain(){stringDigits("123");stringstreamss(Digits);stringTemp;vectorTokens;while(ss>>Temp)Tokens.push_back(Temp);ss.str(Tokens[0]);intNum=0;ss>>Num;cout 最佳答案 当流提取3个数字“123”中的最后一个时,将设置eof状态。这个不是str()成员清除的,需要

c++ - 我可以将 stringstream 用作 C# 中的 `MemoryStream` 之类的内存流吗?

在C/C++中,字符串以NULL结尾。我可以像C#中的MemoryStream那样使用stringstream作为内存流吗?内存流的数据中间可能有\0值,但C++字符串以NULL结尾。 最佳答案 当在std::string中存储字符序列时,您可以包含空字符。相应地,std::stringstream也可以处理嵌入的空字符。但是,流上的各种格式化操作不会通过空字符。此外,当使用内置字符串为std::string赋值时,空字符很重要,即,您需要使用各种重载,将字符序列的大小作为争论。你到底想达到什么目的?可能有一种比在字符串流中旅行更简

c++使用stringstream boost 序列化

我是boost和c++的新手,正在尝试将对象序列化为二进制,然后反序列化它。我正在使用示例中的类:http://en.highscore.de/cpp/boost/serialization.html假设这是我要序列化的类:classperson{public:person(){}person(intage):age_(age){}intage()const{returnage_;}private:friendclassboost::serialization::access;templatevoidserialize(Archive&ar,constunsignedintversio

c++ - 有没有办法将 std::move std::string 放入 std::stringstream

在c++引用中,我没有看到std::stringstream构造函数接受std::string的右值引用。是否有任何其他帮助函数可以在没有开销的情况下将字符串move到stringstream,或者在进行这种限制的背后是否有特殊原因? 最佳答案 从C++20开始,您可以将stringmove到stringstream中:cppreferenceC++20之前的旧答案:Idonotseeastd::stringstreamconstructoracceptingrvaluereferenceofstd::string没错。即使是str

c++ - 重新使用 stringstream 对象的问题

我尝试使用安全实践来处理仅在C++中使用数字的输入,因此我使用stringstream对象:#include#include#includeusingnamespacestd;intmain(){intfirst,second;stringinput;stringstreamsstream;cout>first;cout>second;cout然而,第二次似乎给变量“second”一个任意值。这是输出:Firstinteger:11Secondinteger:22293592如果我声明两个stringstream对象并将它们分别用于两个变量,它似乎工作正常。这是否意味着我不能按照我尝试

c++ - 如何在不复制或查找的情况下获得 const stringstream 缓冲区的长度?

我有一个conststd::stringstream并希望找出其底层字符串缓冲区中有多少字节。我不能seekg到最后,tellg然后seekg重新开始,因为这些操作都不可用const。我不想得到str().size()因为str()返回一个拷贝,这可能不是一个微不足道的数据量。我有什么好的选择吗?(流本身以const的形式呈现给我,只是因为它是另一种类型的成员,并且我收到了对该类型对象的const引用。流表示一个“文档”,它的封装对象代表一个CGI响应,我正在尝试从Content-Length中生成准确的operatorHTTPheader行。) 最佳答案

c++ - 初始化 stringstream.str( a_value ) 和 stringstream << a_value 之间的区别

考虑:std::strings_a,s_b;std::stringstreamss_1,ss_2;//atthisstage://ss_1andss_2havebeenusedandarenowinsomestrangestate//s_aands_bcontainnon-whitespacewordsss_1.str(std::string());ss_1.clear();ss_1withwithoutspacebetweenthemss_2.str(s_a);ss_2.clear();//ss_2.str().c_str()isnows_ass_2问题:stringstream.s

c++ - C++ 中的 "string"、 "stream"和 "stringstream"类是什么?

我想知道c++中string和stream有什么区别,stringstream是什么? 最佳答案 istream和ostream:流数据(文件、套接字等)的接口(interface)istringstream:一个istream包装一个字符串并提供它的内容ostringstream:一个ostream,将写入的内容保存为字符串例子:istringstreamdatastream("123");intval;datastream>>val;cout>val;cout>val;cout 关于

c++ - stringstream 字符串到 int

下面的C++代码执行int到string和string到int的转换。然后,它再次重复这些步骤。stringstream到int行stream1>>i3;正在破坏代码。我在这里错过了什么?#include#include#includeusingnamespacestd;intmain(){inti1=101;inti2=202;inti3=0;strings1="";strings2="";stringstreamstream1;for(inti=0;i>i3;//lineabovecausess1ands2togetmessedupduring2ndtimeinforloopcou