Мой входной файл:
Title: Titanic
17:40 hall 1
19:20 hall 7
20:20 hall 1
Title: To Kill a Mockingbird
14:10 hall 3
15:50 hall 3
18:25 hall 8
20:30 hall 2
Title: The Silence of the Lambs
19:30 hall 5
20:50 hall 4
22:10 hall 3
Мой код:
const std::string filename = "schedule.txt";
std::string movieName, movieTime, movieHall;
std::ifstream file (filename);
if (file.is_open()) {
getline(file, movieName);
file >> movieTime >> movieHall;
file.close();
}
else
std::cout << "unable to open file";
Я не знаю, как создать цикл, который бы сохранял каждый movieTime и movieHall для каждого фильма изатем перейдите к другому фильму и его фильму Time / movieHall.Я попытался с помощью find, но программа находит первый «заголовок», а затем просто сохраняет все случайным образом во времени и зале, не останавливаясь на другом заголовке, чтобы прочитать его с помощью getline.
EDIT Решил мою проблему сstd::istringstream
const std::string filename = "schedule.txt";
std::string movieName, movieTime, movieHall, read;
std::ifstream file (filename);
if (file.is_open()) {
while(getline(file, read)){
std::istringstream iss(read);
std::string phrase;
if( std::getline(iss, phrase, ' ') ){
if(phrase == "Title")
{
std::cout << read << std::endl;
}
else
{
file >> movieTime >> movieHall;
std::cout << movieTime << " " << movieHall << std::endl;
}
}
}
file.close();
}
else
std::cout << "unable to open file";
Спасибо (еще раз) @ Фуберт