【发布时间】:2012-12-11 10:06:57
【问题描述】:
这是我第一次使用 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 文件中的任意数量的行中。 我无法找出可能是什么原因。请帮我。 谢谢。
【问题讨论】:
-
你有一个循环...是什么让你认为它会读取第一行然后停止循环?
-
嗯,你循环,将每一行抓取到同一个变量中,覆盖它之前的内容,然后输出它。你期待什么?
-
我可能会选择
while (std::getline(file, val)) {std::cout << val;}并忘记整个good()部分。
标签: c++ csv getline sstream import-from-csv