2013-10-14 66 views
0

我是C++的新手,並試圖喘氣的基礎知識。我正在嘗試讀取文件的輸入並打印出文件中的所有內容,最重要的是,將項目的id與輸入的值匹配,並刪除我的文件中與id匹配的行。C++從文件中讀取,並匹配編號

回答

0

你的代碼有兩個問題。

第一個是輸入運算符>>分隔空白,而不是任意字符,所以你解析輸入文件是錯誤的。

您可以使用例如std::getline以獲得單個字段作爲字符串,然後將它們轉換爲正確的類型(或者通過std::istringstream或通過使用例如std::stoi)。


的第二個問題是,你在所有的數據讀取,但只能節省你在閱讀的最後一行。你需要將數據存儲在該放於載體的結構,然後通過搜索向量。

+0

好嗎謝謝。 – user3429531

0

這是因爲變量'id'只存儲while循環中運行的stringstream iss的最後讀取值。

由於txt文件中有四行,while循環運行了四次,因此最後一行的信息存儲在變量中。要存儲所有的行/記錄,只需要一個變量就不夠用,你必須使用Vector或Structure或者其他類型的變量。

+0

好的謝謝。 – user3429531

0

如果你的文件格式是固定的(intstringint

你可以找到/匹配 「ID」 像以下:

cout << "Input the id that you wish to find" << endl; 
cin >> input; 

char ch; // for colon (:) 
while(readFile >> id >> ch >> itemName >> ch >> quantity) 
{ 
    if (input == id) { 
    //cout << "valid Input"; 
    } 

} 

readFile .close();