【发布时间】:2018-01-18 01:50:43
【问题描述】:
我有这个简单的代码拆分由 & 分隔的等号组成的字符串:
std::string cmd = "par1=1&par2=ciao&par3=1.2e4"
std::stringstream ss(cmd);
std::string argdef;
std::vector<std::string> pairs(0);
while (std::getline(ss, argdef, '&'))
pairs.push_back(argdef);
我正确地将三个等式收集到向量“对”中,但是 while 循环继续超出流的末尾,并且出现分段错误。如何避免这种情况?
【问题讨论】:
-
相当肯定 getline 会直接通过空终止符。尝试在字符串末尾添加
&?没关系...stringstream 应该为您处理 eof。
标签: c++ getline stringstream