C++ visual studio 2012中的getline()函数的工作方式不同,直接跳到最后一行

C++ visual studio 2012中的getline()函数的工作方式不同,直接跳到最后一行,c++,csv,getline,sstream,import-from-csv,C++,Csv,Getline,Sstream,Import From Csv,这是我第一次使用getline(),我认为它有问题! 这是我的密码: ifstream file ("new2.csv"); string val; while (file.good()) { getline (file,val); } cout<<val; 我认为getline应该读取csv文件的第一行,但在这种情况下,我的输出将是:monkey、flower、text、word csv文件中的任何行都会发生这种情况。 我不知道这是怎么回事。请帮帮我。 谢谢。while(

这是我第一次使用getline(),我认为它有问题! 这是我的密码:

ifstream file ("new2.csv");
string val;
while (file.good())
{
    getline (file,val);
}
cout<<val;
我认为getline应该读取csv文件的第一行,但在这种情况下,我的输出将是:
monkey、flower、text、word

csv文件中的任何行都会发生这种情况。 我不知道这是怎么回事。请帮帮我。 谢谢。

while(file.good())
{
getline(文件,val);
}

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

你应该写以下内容:

ifstream file ("new2.csv");
string val;
while (file.good())
{
    getline (file,val);
    cout<< val << endl;
}
ifstream文件(“new2.csv”);
字符串val;
while(file.good())
{
getline(文件,val);

你可以在那里有一个循环…什么让你认为它会读取第一行,然后停止循环?好吧,你可以循环,把每一行抓取到同一个变量中,覆盖它以前的内容,然后输出它。你期望什么?我可能会使用
而(std::getline(file,val)){std::cout oh..非常感谢(这太傻了!!)这是我第一次使用getline,所以出现了这个问题。
while (file.good())
{
    getline (file,val);
}
cout<<val;
ifstream file ("new2.csv");
string val;
while (file.good())
{
    getline (file,val);
    cout<< val << endl;
}