我是C++初學者。我試圖讀取的格式,像這樣一個文件:讀取數據文件中的多個項目C++
5恭金#3 30.00 1
15雷Allrich#10.25 0 0
...
串號#號碼號碼
其中每個號碼都有其自己的意義,名稱也是如此。我可以打開文件並閱讀前兩個項目,但名稱後面無法獲取數字。這是我現在的功能:
void getItems(ifstream& dataFile, // in file
Employee item[], // class array so I can store the data later
int &transNum) // number of transactions
{
int id; // employee ID
char name[20]; // employee name
double hourlyPay; // pay per hour
int numDeps; // number of dependents
int type; // employee type
transNum = 0;
dataFile >> id;
dataFile.ignore(); // discard space before name
dataFile.getline(name, '#');
dataFile >> hourlyPay >> numDeps >> type;
}
我需要它讀取第一個數字,讀取名稱,然後讀取最後3個數字。在每個名字(最多20個字符)之後都有一個#符號,我們應該停止閱讀這個名字。我已經嘗試調整我的字符串和其他小修正的char數組的大小,但沒有任何作用。我意識到我現在只能得到1行......我只是想在第一行工作,然後才做了一個循環來抓取其他行。
好的。我修改了我的getline行,但現在3個變量(hourlyPay,numDeps和type)變得非常時髦。它們的值是-9.25596e61和-858993460 – KwakKwak
請注意,此解決方案在名稱前後留出空格。 – vmrob
@KwakKwak我試了一下,它似乎爲我工作 - 小時pay等變量填寫正確。 –