如何在c++;每行不读两遍 我用C++读取了一个问题文件,它的每一行包含一个浮点数,如下: 1.33 5.45 6.21 2.48 3.84 7.96 8.14 4.36 2.24 9.45
我的代码正在读取和打印everyline并打印两次。我如何修复它如何在c++;每行不读两遍 我用C++读取了一个问题文件,它的每一行包含一个浮点数,如下: 1.33 5.45 6.21 2.48 3.84 7.96 8.14 4.36 2.24 9.45,c++,C++,我的代码正在读取和打印everyline并打印两次。我如何修复它 string line; fstream inputNumbersFile("input.txt"); if (inputNumbersFile.is_open()) { while (!inputNumbersFile.eof()) { getline(inputNumbersFile, line); cout
string line;
fstream inputNumbersFile("input.txt");
if (inputNumbersFile.is_open())
{
while (!inputNumbersFile.eof())
{
getline(inputNumbersFile, line);
cout << line << endl;
}
}
字符串行;
fstream inputNumbersFile(“input.txt”);
if(inputNumbersFile.is_open())
{
而(!inputNumbersFile.eof())
{
getline(InputNumberFile,第行);
cout在循环条件下使用inputNumbersFile.eof()
是一个坏主意。只需将此循环替换为
while (getline(inputNumbersFile, line))
cout << line << endl;
while(getline(inputNumbersFile,line))
cout在循环条件下使用inputNumbersFile.eof()
是一个坏主意。只需将此循环替换为
while (getline(inputNumbersFile, line))
cout << line << endl;
while(getline(inputNumbersFile,line))
旁白:你有没有用调试器检查过你的代码,看看它在做什么?这是你应该从这样的问题开始的。这可能会对你的问题有所帮助。我刚刚用你的输入数据在Linux上用GCC 4.6.3构建了它,它对我来说很好。是的,我用调试器检查过我的代码。它会执行geline语句在while循环中出现了两次。你是说最后一行空行被打印出来了吗?这对我来说很有效,尤其是在答案中的修复。旁白:你用调试器检查过你的代码了吗?这是你应该从这样的问题开始的。这可能会对你的问题有所帮助。我刚刚构建了这个在Linux上使用GCC 4.6.3,使用您的输入数据,它对我来说很好。是的,我用调试器检查了我的代码。它在while循环中执行了两次geline语句。您的意思是最后一行空行被打印出来了吗?它对我来说很好,尤其是在答案中的修复情况下。