草庐IT

Stringstream

全部标签

c++ - 这种计算大数的方法是如何工作的?

通常,要在C++中处理超出longlong范围的整数,您必须将它们表示为字符串并以这种方式对它们执行操作。但是,我在互联网上找到了这段代码,它似乎像魔术一样工作。它计算2的任意次幂之和(不包括2^0),即使它不能存储在longlong中。#include#include#include#includeusingnamespacestd;intmain(){intn;stringstreamss;cin>>n;ss=54){stringa=ss.str();a[a.size()-1]=((a[a.size()-1]-48)-2)+48;cout它是如何工作的?它适用于任何涉及大量的操作吗

c++ - yaml-cpp 解析字符串

是否可以使用yaml-cpp解析YAML格式的字符串?没有YAML::Parser::Parser(std::string&)构造函数。(我通过libcurl从http服务器获取YAML字符串。) 最佳答案 尝试使用stringstream:std::strings="name:YAMLfromlibcurl";std::stringstreamss(s);YAML::Parserparser(ss); 关于c++-yaml-cpp解析字符串,我们在StackOverflow上找到一个类

c++ - 从 std::stringstream 传递 std::string 引用作为参数

我正在使用std::stringstream构造一个字符串,然后尝试将完成的字符串作为对函数的引用传递,该函数将std::string&作为参数。我在GCC上遇到编译错误:../src/so.cpp:22:21:error:invalidinitializationofnon-constreferenceoftype‘std::string&{akastd::basic_string&}’fromanrvalueoftype‘std::basic_stringstream::__string_type{akastd::basic_string}’../src/so.cpp:12:6:e

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

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

C++ stringstream >> int 返回零

我正在编写一个函数来返回数字的反转,即将int(1234)转换为int(4321)。这是我目前拥有的:#include#include#include#includeusingnamespacestd;intreverse(intnum){stringstreamss(stringstream::in|stringstream::out);stringinitial;intreversed;//readthenumberintoastringstreamss>reversed;returnreversed;}intmain(intargc,constchar*argv[]){intte

c++ - 什么时候构造函数调用中的堆栈对象?

假设我有一个简单的函数:voidfoo(intval){if(val==0){return;}else{stringstreamss;ss如果我用val==0调用函数,stringstream对象ss会被构建吗?我怀疑不是,只是想确认一下。 最佳答案 这正是C/C++中作用域的用处:不构造您不想构造的对象。在这里,您的stringstream对象只有在您进入它的范围时才会被构造,该范围由else大括号定义。所以不,如果val==0,您的对象将不会被构造。 关于c++-什么时候构造函数调用

c++ - 如何要求 stringstream 不要在引号中拆分数据 (C++)

我正在使用std::stringstream从std::string值中解析一些数据。这段代码:std::stringstr="data1data2data3\"quotateddata\"";std::stringstreamss(str);如果我使用ss>>anotherStr;我得到每个单词用空格分隔。我不明白是否有一个选项可以要求stringstream将引号中的数据作为单个字符串值读取? 最佳答案 std::quotedio操纵器正是您所需要的。这里有一个方便的引用:http://en.cppreference.com/w

c++ - 如何使用 write with stringstream?

我有一个vector我要写入的数据std::stringstream.我试过:my_ss.write(vector.data(),vector.size());...但它似乎没有将任何内容放入my_ss我声明如下:std::stringstreammy_ss(std::stringstream::binary);为什么write不工作(应用程序没有崩溃并且编译时出现0个错误,0个警告)? 最佳答案 对于“我该怎么做”,您可以使用std::ostream_iterator:std::copy(vector.begin(),vector

c++ - 使用运算符将​​字符串流传递给 istream >>

我正在尝试将字符串流传递到一个对象(类)中,该对象(类)具有已声明和定义的重载提取运算符>>>。例如,object1中重载的提取运算符的声明是friendistream&operator>>(istream&in,Object1&input);在object2中,我的声明几乎一样friendistream&operator>>(istream&in,Object2&input);在object1提取函数期间,func.获取一行,将其转换为字符串流并尝试使用Object2的提取(>>)运算符。istream&operator>>(istream&in,Object1&input){Obj

c++ - 启用 _GLIBCXX_DEBUG 后,Stringstream 无法使用 double

我正在使用_GLIBCXX_DEBUG模式来帮助查找我的代码中的错误,但我遇到了一个问题,我认为这是库中的一个错误,但希望有人能告诉我我只是做错了什么。这是一个重现问题的简短示例:#define_GLIBCXX_DEBUG#include#includeintmain(intargc,constchar*argv[]){std::ostringstreamostr;ostr如果我注释掉#define,那么输出是(如预期的那样):Result:1.2有了_GLIBCXX_DEBUG定义,但是输出很简单:Result:我已经追踪到流的_M_num_put字段被保留为NULL,这导致在流中抛