2013-10-20 135 views
0

我正在嘗試讀取這種格式的文本文件(item.txt) itemId:itemDescription:itemCategory:itemSubCategory:amountPerUnit:itemQuantity:date 我想要的是根據我的預期輸出讀取文本文件並將其存儲在向量中。C++讀取文本文件並將其存儲到向量

+0

您應該使用這裏'struct'。如果您允許通過公共成員職能對私人成員進行任何修改,那麼您也可以將其全部公開。 – Shoe

+0

@Jefffrey因爲我更熟悉java並剛剛開始學習C++,所以我傾向於用「java的邏輯方式」來做事情,但是感謝您的建議,我會閱讀結構。 – user3493435

回答

2

您正在通過使用std::getline正確的方式。但相反,您應該逐行讀取文件,然後將整行寫入std::istringstream,然後,您可以使用std::getline來標記行。

您不能使用正常輸入運算符>>,因爲它在空間上分開。


while (std::getline(readFile, line)) 
{ 
    std::istringstream iss(line); 
    std::string temp; 

    std::getline(iss, temp, ':'); 
    itemId = std::stoi(temp); 

    std::getline(iss, itemDescription, ':'); 
    std::getline(iss, itemCategory, ':'); 
    std::getline(iss, itemSubCategory, ':'); 

    std::getline(iss, temp, ':'); 
    amountPerUnit = std::stod(temp); 

    std::getline(iss, temp, ':'); 
    quantity = std::stoi(temp); 

    std::getline(iss, date, ':'); 

    // Create object and add it to the vector 
} 
+0

對不起。但你能告訴我一個例子嗎? – user3493435

+0

@ user3493435更新了我的回答 –

+0

非常感謝您的幫助 – user3493435

相關問題