[英]Splitting a string into two different vectors C++
我正在尝试将字符串拆分为两个不同的向量。 但是,我一生都无法弄清楚我做错了什么。
我有一大堆要传递的字符串(从 a.txt 文件解析),看起来像这样:
01 Sam
02 Pam
03 Lam
04 Ham
我试图将它们传递给两个不同的向量
std::vector<std::string> numbers;
std::vector<std::string> names;
这是我写下的部分代码:
std::stringstream linestream(data.at(i));
while (std::getline(linestream, data.at(i), ' ')) { // Split the string by spaces
int t = 0;
if (t == 0) {
numbers.push_back(data.at(i));
t++;
}
if (t == 1) {
names.push_back(data.at(i));
}
}
我希望第一部分(即数字)将被放入 numbers 向量中,而第二部分(即名称)将被放入 names 向量中。 但是,出于某种原因,数字和名称都被放入名称向量中。
有没有更好的方法将两者分开?
用空格分割数据正是operator>>
在读取字符串时所做的事情。 不需要额外的getline
,您的循环可以简化为:
std::string numberBuf;
std::string nameBuf;
while(linestream >> numberBuf >> nameBuf) {
numbers.push_back(numberBuf);
names.push_back(nameBuf);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.