[英]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.