[英]Having Difficulty Reading Data From a File in C++
我在這個學校項目上遇到了一些問題,可以在開始時使用一些幫助。 我得到一個文件,其中包含電影名稱、制作年份和類型,然后我應該創建一個包含信息的鏈接列表。 文件中的每一行看起來像這樣:
1::Toy Story (1995)::Animation|Children's|Comedy
如果用戶決定按電影名稱搜索並輸入Toy Story
,它應該顯示電影的名稱和年份: Toy Story (1995)
如果用戶決定按流派搜索,它應該顯示包含該流派的每部電影。 最后,如果用戶想刪除一部電影,他們輸入電影標題,它應該與其他信息一起從鏈接列表中刪除。
所以到目前為止我遇到的問題是讀取數據。 當我讀入數據時,我可以刪除::
和|
並將所有內容存儲在一個向量中,但現在向量的每個元素都是一個詞,這意味着如果我要打印出vect[1]
例如,它將是Toy
(因為vect[0]
將是1
因為我不知道如何刪除前導數字,這是另一個問題)。
那么我將如何將電影的標題保留在一起,以便我可以將其添加到鏈接列表中,反之亦然? 另外,我是否需要創建三個鏈接列表,一個是電影名稱,一個是年份,另一個是類型?
我沒有太多代碼,因為我的問題剛開始是對的,但這是我到目前為止所擁有的。 它遍歷文件並刪除::
和|
並將其存儲到一個向量中。 我不知道我應該如何從這里開始,或者即使這是解決此類問題的正確方法。
while(inFile >> value)
{
istringstream iss(value);
string line;
while(getline(iss, line))
{
size_t prev = 0, pos;
while ((pos = line.find_first_of("|:", prev)) != string::npos)
{
if (pos > prev)
{
vect.push_back(line.substr(prev, pos-prev));
}
prev = pos + 1;
}
if (prev < line.length())
{
vect.push_back(line.substr(prev, string::npos));
}
}
}
我不是通常尋求幫助的人,但我完全陷入困境,不知道如何繼續。 任何幫助,將不勝感激! 如果我需要澄清任何事情,請告訴我。
不要把它當作一個字符串。 編寫一個數據結構來包含信息。
struct movie {
std::string title;
std::string year;
std::vector<std::string> genres;
};
然后,在解析每一行時,填充此結構的一個實例。 解析完該行后,將結構推送到您的列表中。 這將使您能夠在以后進行搜索。 您還可以將流運算符添加到結構中,以便以干凈的格式將其打印到屏幕上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.