草庐IT

istringstream

全部标签

c++ - istringstream operator>> 返回值如何工作?

此示例读取包含一个整数、一个运算符和另一个整数的行。例如,25*34/2//sstream-line-input.cpp-Exampleofinputstringstream.//Thisacceptsonlylineswithanint,achar,andanint.//FredSwartz11Aug2003#include#include#includeusingnamespacestd;//================================================================mainintmain(){strings;//Wheretos

linux - 无法在 LINUX 的 C++ 中将 STRING 转换为 INT

我尝试了很多方法,详见此处:http://www.cplusplus.com/forum/general/13135/如果我在Windows上运行该文件,它们中的大多数都可以工作,但是当我尝试在LINUX上运行时,它们都不起作用。例如,我尝试这样做:stringstr="123";intsp;istringstream(str)>>sp;但它给了我错误:“无效使用不完整类型‘structstd::istringstream’/usr/include/c++/4.4/iosfwd:67:错误:‘structstd::istringstream’的声明”其他选项是“atoi”,但它表示“a

linux - 无法在 LINUX 的 C++ 中将 STRING 转换为 INT

我尝试了很多方法,详见此处:http://www.cplusplus.com/forum/general/13135/如果我在Windows上运行该文件,它们中的大多数都可以工作,但是当我尝试在LINUX上运行时,它们都不起作用。例如,我尝试这样做:stringstr="123";intsp;istringstream(str)>>sp;但它给了我错误:“无效使用不完整类型‘structstd::istringstream’/usr/include/c++/4.4/iosfwd:67:错误:‘structstd::istringstream’的声明”其他选项是“atoi”,但它表示“a

c++ - g++ 和 clang++ 对流输入和无符号整数的不同行为

我遇到了gcc(4.9.2)和clang(3.5.0)之间的行为差​​异,这让我很惊讶。当我尝试喂一个unsignedint来自std::istringstream用负值初始化(在示例中为“-15”)我得到clang++出现错误(fail()位已引发)使用signed(-15)进行初始化使用gcc++我准备了以下简单的示例程序。#include#includeintmain(){std::istringstreamiss("-15");unsignedintui;iss>>ui;std::cout使用clang++,我得到以下输出ui[0]signed(ui)[0]flags[1001

c++ - g++ 和 clang++ 对流输入和无符号整数的不同行为

我遇到了gcc(4.9.2)和clang(3.5.0)之间的行为差​​异,这让我很惊讶。当我尝试喂一个unsignedint来自std::istringstream用负值初始化(在示例中为“-15”)我得到clang++出现错误(fail()位已引发)使用signed(-15)进行初始化使用gcc++我准备了以下简单的示例程序。#include#includeintmain(){std::istringstreamiss("-15");unsignedintui;iss>>ui;std::cout使用clang++,我得到以下输出ui[0]signed(ui)[0]flags[1001

C++ - 重复使用 istringstream

我有一个代码用于读取在线存储的float文件,如下所示:“3.34|2.3409|1.0001|...|1.1|”。我想使用istringstream阅读它们,但它并没有像我预期的那样工作:stringrow;stringstrNum;istringstreamseparate;//textovystreamprokonverziwhile(getline(file,row)){separate.str(row);//=HEREisPROBLEM=while(getline(separate,strNum,'|')){//usingdelimiterflNum=strToFl(strN

C++ - 重复使用 istringstream

我有一个代码用于读取在线存储的float文件,如下所示:“3.34|2.3409|1.0001|...|1.1|”。我想使用istringstream阅读它们,但它并没有像我预期的那样工作:stringrow;stringstrNum;istringstreamseparate;//textovystreamprokonverziwhile(getline(file,row)){separate.str(row);//=HEREisPROBLEM=while(getline(separate,strNum,'|')){//usingdelimiterflNum=strToFl(strN

c++ - std::istringstream >> 加倍奇怪的行为

以下代码在macosx上使用clang打印0。它在其他任何地方打印5(clang,gcc)#include#includeintmain(){std::istringstreamiss("5C3");doublen;iss>>n;std::coutConfiguredwith:--prefix=/Applications/Xcode.app/Contents/Developer/usr--with-gxx-include-dir=/usr/include/c++/4.2.1AppleLLVMversion6.1.0(clang-602.0.53)(basedonLLVM3.6.0svn

c++ - 为什么当我将 std::locale 设置为 "zh_CN.UTF-8"时 std::istringstream 失败?

代码如下:#include#include#includeintmain(){std::locale::global(std::locale("zh_CN.UTF-8"));std::stringstr=u8"8086";std::istringstreamiss(str);inte;iss>>e;if(iss.fail()){std::cout输出是:failede=8086operator>>成功了,但为什么fail()返回true?我在centos7中试过,fail()返回了false,但是当我在macOS中运行时,fail()返回true?为什么?---------------

c++ - 非复制 istringstream

因此istringstream在初始化时复制字符串的内容,例如stringmoo("onetwothreefour");istringstreamiss(moo.c_str());我想知道是否有办法让std::istringstream使用给定的c_str作为它的缓冲区而不复制东西。这样,它就不必在将std::istringstream&传递给以istream&作为参数的函数之前复制大量内存。我一直在尝试做的是将一些只采用std::ifstream&参数(它们主要是解析器)的函数转换为也采用istream&。我是否必须为此创建自己的istream子类? 最佳