这是我第一次使用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文件中的任意行数。 我无法找出可能正在做的事情。请帮我。 感谢。
答案 0 :(得分:2)
当然它只会打印从文件中读取的最后一行,因为cout在循环外打印并在读完所有行完成后打印最后一行。
你应该写这个:
ifstream file ("new2.csv");
string val;
while (file.good())
{
getline (file,val);
cout<< val << endl;
}
答案 1 :(得分:1)
while (file.good())
{
getline (file,val);
}
cout<<val;
你的cout
在循环之外,所以你只打印最后一行。