3

这是我第一次使用 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 文件中的任意数量的行中。我无法找出可能是什么原因。请帮我。谢谢。

4

2 回答 2

2

当然,它只会打印从文件中读取的最后一行,因为 cout 在循环外打印,并且在读取完所有行后打印最后一行。

你应该这样写:

ifstream file ("new2.csv");
string val;
while (file.good())
{
    getline (file,val);
    cout<< val << endl;
}
于 2012-12-25T12:22:26.990 回答
1
while (file.good())
{
    getline (file,val);
}
cout<<val;

cout在循环之外,所以你只会打印最后一行。

于 2012-12-25T12:20:47.957 回答