Привет мне нужно прочитать файл, который выглядит следующим образом ...C++ как читать строку с разделителем до конца каждой строки?
1|Toy Story (1995)|Animation|Children's|Comedy
2|Jumanji (1995)|Adventure|Children's|Fantasy
3|Grumpier Old Men (1995)|Comedy|Romance
4|Waiting to Exhale (1995)|Comedy|Drama
5|Father of the Bride Part II (1995)|Comedy
6|Heat (1995)|Action|Crime|Thriller
7|Sabrina (1995)|Comedy|Romance
8|Tom and Huck (1995)|Adventure|Children's
9|Sudden Death (1995)|Action
Как вы можете видеть тип каждого фильма может варьироваться от 1 типа для многих ... Интересно, как я не мог читать их пока конец каждой строки?
Я сейчас делаю:
void readingenre(string filename,int **g)
{
ifstream myfile(filename);
cout << "reading file "+filename << endl;
if(myfile.is_open())
{
string item;
string name;
string type;
while(!myfile.eof())
{
getline(myfile,item,'|');
//cout <<item<< "\t";
getline(myfile,name,'|');
while(getline(myfile,type,'|'))
{
cout<<type<<endl;
}
getline(myfile,type,'\n');
}
myfile.close();
cout << "reading genre file finished" <<endl;
}
}
результат не то, что я хочу ... Это выглядит следующим образом:
Animation
Children's
Comedy
2
Jumanji (1995)
Adventure
Children's
Fantasy
3
Grumpier Old Men (1995)
Comedy
Romance
Так что не остановится в конце каждой строки ... Как я могу это исправить?
Читать жанровую часть без указания разделителя (то есть, используя разделитель по умолчанию '«\ n''), а затем разделить результат с '» | ''. – Leon
Код делает именно то, что вы просили. Что вы ожидаете?? – UmNyobe
@ Leon спасибо! Какую функцию следует использовать для разделения результата на «|»? – weeo