【发布时间】:2013-05-03 00:53:19
【问题描述】:
我有这段代码应该在控制台中计算出 .csv 文件中的信息;
while(file.good())
{
getline(file, ID, ',');
cout << "ID: " << ID << " " ;
getline(file, nome, ',') ;
cout << "User: " << nome << " " ;
getline(file, idade, ',') ;
cout << "Idade: " << idade << " " ;
getline(file, genero, ' ') ;
cout << "Sexo: " << genero<< " " ;
}
还有一个包含这个的 csv 文件(当我用记事本打开时):
0,Filipe,19,M
1,Maria,20,F
2,Walter,60,M
每当我运行程序时,控制台都会显示:
我的问题是为什么程序不是在每一行而不是只在第一行重复这些 cout 消息
顺便说一句,nome 是名字,idade 是年龄,genero/sexo 是性别,发帖前忘记翻译了
【问题讨论】:
-
我一直在寻找一种简单的方法来做到这一点,如果可能的话。关于我目前的知识,您发布的链接对我来说就像中文
-
@FreemanZhang:那是 C#,这是 C++。
-
@FilipeGama:您有两个问题,(A)答案中提到的分隔符,以及(B),您正在检查输入是否在错误的地方有效。如果只修复 A,这将导致最后一行出现重复。
-
@Mooing Duck 是的,它会,但只是有时无法弄清楚为什么,你能解释一下我应该在哪里检查输入是否有效?
-
@FilipeGama:如果你做输入操作,测试是否成功。流会传播失败,因此您只需要测试最后一个是否成功,这太棒了。