c++ - 使用 while 循环从文本文件中读取数据

标签 c++

<分区>

所以我正在使用 while 循环将文本文件中的数据读入 vector 。

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

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 的内容没有改变,因此你再次将它添加到你的 vector 中。

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

关于c++ - 使用 while 循环从文本文件中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899215/

相关文章:

c++ - 了解 C++ 中放宽的内存顺序

c++ - 使用 step 方法检索图像的 bgr 值的代码有什么问题

c++ - 计算特定数字的递归函数

c++ - 同行之间的 C++ 友元是否健康?

c++ - 在使用 Boost::asio 之前从套接字读取后是否可以执行 async_handshake?

c++ - 如何在不使用 sqrt 的情况下检查整数是否为完美平方

javascript - Qt QWebView 和从 JavaScript 传递数据

c++ - 在 UNIX 中通过 recv/send 交换数据时如何正确使用缓冲区?

c++ - Windows Embedded Compact(Windows CE)程序的事后分析

c++ - OpenCV 未初始化 USB 摄像头