我从一个文件中取出内容并将它们转移到另一个文件中。特别是,我正在寻找包含子串" LIBOR / Swap"的行。但是,这是无关紧要的,我已将它们评论出来。因此,此特定代码实际上将每行放在一个.csv文件(文件)中,并将它们传输到另一个.csv文件(temp)。
问题是转移会跳过线路。请参阅附图,了解它在传输数据时跳过的行。
正如您所看到的,通过第一个美元LIBOR /交换行,它会跳过 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();
}
答案 0 :(得分:1)
你正在调用getline(文件,行)两次 - 一次在while()标题内,然后再在body体内。删除第二个。