C++ 为什么ifstream会两次返回输入文件的最后一个值?

C++ 为什么ifstream会两次返回输入文件的最后一个值?,c++,ifstream,C++,Ifstream,为什么ifstream返回字符串的最后一个值两次 在 单元[7]=单元[8]=4 我已经用一些格式类似的输入完成了这项工作,它对所有输入都是这样做的。实现这一点的惯用方法是 while (myfile >> c){ } 这完全消除了您的问题,因为在读取最后一个值时未达到eof(),但在流读取失败时达到eof(),因此在该失败后,您将执行另一次push_返回。上述while构造的优点是,它会在失败时立即中断。实现这一点的惯用方法是 while (myfile >> c)

为什么ifstream返回字符串的最后一个值两次

单元[7]=单元[8]=4


我已经用一些格式类似的输入完成了这项工作,它对所有输入都是这样做的。

实现这一点的惯用方法是

while (myfile >> c){

}

这完全消除了您的问题,因为在读取最后一个值时未达到eof(),但在流读取失败时达到eof(),因此在该失败后,您将执行另一次push_返回。上述while构造的优点是,它会在失败时立即中断。

实现这一点的惯用方法是

while (myfile >> c){

}

这完全消除了您的问题,因为在读取最后一个值时未达到eof(),但在流读取失败时达到eof(),因此在该失败后,您将执行另一次push_返回。上述while构造的优点是,它会在失败时立即中断。

实现这一点的惯用方法是

while (myfile >> c){

}

这完全消除了您的问题,因为在读取最后一个值时未达到eof(),但在流读取失败时达到eof(),因此在该失败后,您将执行另一次push_返回。上述while构造的优点是,它会在失败时立即中断。

实现这一点的惯用方法是

while (myfile >> c){

}

这完全消除了您的问题,因为在读取最后一个值时未达到eof(),但在流读取失败时达到eof(),因此在该失败后,您将执行另一次push_返回。上述while构造的优点是,它会在失败时立即中断。

在使用I/O操作返回的数据之前,应始终检查I/O操作的结果


在这种情况下,这意味着您对
eof()
的检查应该在
push\u back()
调用之前进行。为了使代码更安全,您还应该在流上添加对
fail()
的检查,因为流可能由于达到EOF以外的其他原因而失败。

在使用I/O操作返回的数据之前,您应该始终检查I/O操作的结果


在这种情况下,这意味着您对
eof()
的检查应该在
push\u back()
调用之前进行。为了使代码更安全,您还应该在流上添加对
fail()
的检查,因为流可能由于达到EOF以外的其他原因而失败。

在使用I/O操作返回的数据之前,您应该始终检查I/O操作的结果


在这种情况下,这意味着您对
eof()
的检查应该在
push\u back()
调用之前进行。为了使代码更安全,您还应该在流上添加对
fail()
的检查,因为流可能由于达到EOF以外的其他原因而失败。

在使用I/O操作返回的数据之前,您应该始终检查I/O操作的结果

在这种情况下,这意味着您对
eof()
的检查应该在
push\u back()
调用之前进行。为了使代码更安全,您还应该在流上添加一个对
fail()
的检查,因为流可能由于达到EOF以外的其他原因而失败