無法從文本文件讀取平行數組的信息。的信息被設置爲這樣的文件中:將文本文件逐行讀入並行數組C++
Name
Street Address
City, State, Zip
Order size
Name
Street Address
City, State, Zip
Order size
基本上我需要的姓名,街道地址,並作爲線條城市/州/郵編拉入的字符串數組,然後拉出的順序大小爲一個int數組做一些計算。共有4個陣列。
問題是,它會讀取一級就好了,但第二順序出現不同的輸入之後,所有的訂單只是顯示爲數字:
John Doe
123 Main Street
City, State Zipcode
John Doe
123
Main Street
City, State Zipcode
9
0
9
9
4679937
9
0
9
9
4710208
而這裏的相關代碼:
const int ORDERS = 10;
cout << "Reading from file..." << endl;
ifstream inputFile;
string name[ORDERS], streetAddress[ORDERS], cityStateZip[ORDERS];
string line;
int orderSize[ORDERS];
inputFile.open("Orders.txt");
for(int i = 0; i < ORDERS; i++)
{
getline(inputFile, line);
name[i] = line;
getline(inputFile, line);
streetAddress[i] = line;
getline(inputFile, line);
cityStateZip[i] = line;
inputFile >> orderSize[i];
}
inputFile.close();
for(int i = 0; i < ORDERS; i++)
{
cout << name [i] << endl;
cout << streetAddress[i] << endl;
cout << cityStateZip[i] << endl;
cout << orderSize [i] << endl;
}
任何想法?似乎它試圖在第一個訂單或其他東西之後以整數形式讀取字符串。
帶格式的提取操作符('>>')跳過空行。 'getline'沒有。 – 2013-05-06 19:42:53
您可能還需要定期檢查流失敗,以幫助調試。 – 2013-05-06 19:44:05
您描述了每個記錄佔用五行(四個加一個空白)的文件格式。但是,您所寫的代碼只能爲每條記錄讀取三行。有問題。 – john 2013-05-06 19:45:29