使用 while 循环从文本文件中读入数据

Reading in data from a text file using while loop

本文关键字:文件 读入数据 文本 while 循环 使用      更新时间:2023-10-16

所以我使用 while 循环将数据从文本文件读入向量。

最初我是这样设置代码的:

iftream infile;
while(infile)  // or even if i do while(!infile.eof())
    {
        infile>>data;
        vector1.push_back(data); //adding data in to the vector
    }

- 但这导致了一个小问题,由于某种原因,它在文本文件中的最后一项中读取了两次。

但是如果我以这种方式设置代码,一切正常:

iftream infile;
while(infile>>data)
{
    vector1.push_back(data); //adding data in to the vector
}

为什么第一个代码在最后一项中读取两次?

看起来您的data结构在文件中没有完全对齐,即当您的程序尝试读取最后一个片段时,它还没有到达文件的末尾,但没有足够的数据可以读取。所以infile >> data失败,这意味着data的内容没有被改变,因此你再次将其添加到你的向量中。

在第二种情况下,检查读取结果,因此在未正确读取时不会尝试推送data内容。