getline(file,line) 正在跳过行 - C++

getline(file,line) is skipping lines - C++

我正在从一个文件中获取内容并将其传输到另一个文件。特别是,我要查找包含子字符串 "LIBOR/Swap" 的行。但是,这无关紧要,我已经将它们注释掉了。所以,目前这个特定的代码确实获取了一个 .csv 文件(文件)中的每一行,并将它们传输到另一个 .csv 文件(temp)。

问题是传输跳过了行。请参阅所附照片以查看它在数据传输中跳过的行。

original file

new file

如您所见,在第一行 USD LIBOR/Swap 行中,它跳过了 1 天 汇率。这发生在整个代码的其他地方。

有什么原因吗?谢谢

ifstream file;
ofstream temp;

file.open("YC Rate Levels.csv");
temp.open("Temp.csv");

if (file.is_open())
{
    string line;
    string test = "LIBOR/Swap";

    while (getline(file, line))
    {
          getline(file, line);
        //if(line.find(test) != string::npos)
        //{
            temp << line << endl;
        //}
    }

    temp.close();
    file.close();

} else cout << "File did not open.";

std::cin.clear();
std::cin.ignore(32767, '\n'); 
std::cin.get(); 

}

您正在调用 getline(file, line) 两次 - 一次在 while() header 中,然后在 body 中再次调用。删除第二个。