簡體   English   中英

將字符串拆分為兩個不同的向量 C++

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM