это первый раз, когда я использую getline (), и я думаю, что с этим что-то не так!
Вот мой код:
ifstream file ("new2.csv");
string val;
while (file.good())
{
getline (file,val);
}
cout<<val;
и вывод всегда является последней строкой файла CSV, независимо от того, сколько строк у меня есть в файле CSV.
мой CSV-файл представляет собой простой файл с разделителями. лайк:
cat,dog,a,b,c,hello,world
monkey,flower,text,word
я думаю, что getline должен прочитать первую строку файла CSV, но в этом случае мой вывод будет: monkey,flower,text,word
и это происходит с любым количеством строк в CSV-файле.
Я не могу выяснить, что может делать это. Помогите мне, пожалуйста.
Благодарю.
Конечно, он будет печатать только последнюю строку, прочитанную из файла, потому что cout печатает вне цикла и печатает последнюю строку после прочтения ВСЕХ строк.
Вы должны написать это вместо:
ifstream file ("new2.csv");
string val;
while (file.good())
{
getline (file,val);
cout<< val << endl;
}
while (file.good())
{
getline (file,val);
}
cout<<val;
Ваш cout
находится за пределами цикла, поэтому вы будете печатать только последнюю строку.