好吧,所以這段代碼正在殺死我。將數據從文件加載到C++中的數據結構並解釋它
我的目標是從那裏數據被逗號分隔的文件中讀取數據,然後將數據加載到被認爲是「劇院座位」列表結構數組。劇院席位具有某些特徵,如「位置」,「價格」和「地位」。價格是不言自明的。位置涉及「座位」的行號和座位號。狀態與它是否已售出有關。之後,我必須解釋從數據文件中提取的數據,以便進行顯示,如果用戶輸入了某個選項,則用戶可以輕鬆操作這些數據。但這不是我在這個問題上得到的。 我的問題是,從數據文件加載我的數據結構的最佳方法是什麼?
讓我告訴你一點我是從讀取數據文件。
1, 1, 50, 0
1, 2, 50, 0
1, 3, 50, 0
1, 4, 50, 0
爲了解釋數據文件時,第一個數字是「行」,第二個數字是該行中的座位號,所述第三數目是價格,以及最後的數字(「0」)表示座位未售出。有座被購買,最終數量將是1
現在,這裏是我的代碼。
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <cstdlib>
#include <cstdio>
#include <conio.h>
using namespace std;
enum seatDimensions{ROWS = 10, SEATS_PER = 16};
//Structures
struct Location
{
int row;
int seatNumber;
};
struct Seat
{
Location seat_location[160];
double ticketPrice;
int status;
int patronID;
};
//GLOBALS
const int MAX = 16;
int main()
{
//arrays for our data
Seat seatList[160];
//INDEX
int index = 1;
//filestream
fstream dataIn;
dataIn.open("huntington_data.dat",ios::in);
if(dataIn.fail()) //same as if(dataIn.fail())
{
cout << "Unable to access the data file." << endl;
return 999;
}
string temp;
getline(dataIn,temp,',');
seatList[index].seat_location[index].row = atoi(temp.c_str());
getline(dataIn,temp,',');
seatList[index].seat_location[index].seatNumber = atoi(temp.c_str());
getline(dataIn,temp,',');
seatList[index].ticketPrice = atof(temp.c_str());
getline(dataIn,temp,'\n');
seatList[index].status = atoi(temp.c_str());
while(!dataIn.eof() && index < MAX)
{
index++;
getline(dataIn,temp,',');
seatList[index].seat_location[index].row = atoi(temp.c_str());
getline(dataIn,temp,',');
seatList[index].seat_location[index].seatNumber = atoi(temp.c_str());
getline(dataIn,temp,',');
seatList[index].ticketPrice = atof(temp.c_str());
getline(dataIn,temp,'\n');
seatList[index].status = atoi(temp.c_str());
}
getch();
return 0;
}
現在,從這裏開始,我必須展示座位是否被取走。 顯示屏應該看起來像這樣,因爲還沒有座位。
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 // 16 across
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
// 10 deep
我知道我不是在輸入正確我的數據,因爲我似乎無法得到這顯示無論我如何努力來清點它。如果你能告訴我哪裏出錯了,請告訴我。任何建議都會很棒。 另外,如果您有任何問題,請詢問。考慮到這個問題,我試圖儘可能具體,但我知道它仍然非常模糊。 請幫忙。
編輯:感謝那些回答我的問題的人。我結束了與我的數據結構走非常不同的路線,但從答案中拉了很多。
+1對問題和你的嘗試的很好的描述。 –
你得到的輸出是什麼?在輸出中除了0或1以外還有其他什麼?你可能想從0開始你的索引,另一個建議是在循環中做所有的閱讀。 – Teeknow
我現在得到的輸出是1.是的,這實際上是我決定去的。謝謝你的建議! –