C++ 在Linux中读取double时如何测试行尾

C++ 在Linux中读取double时如何测试行尾,c++,linux,eof,C++,Linux,Eof,好的,我有这个问题。出于某种原因,每当我在Linux中读取文件时。它在线路的末端有一个额外的回车。这导致我的程序出错。所以我想知道,在从每一行提取双精度的同时,如何测试行尾条件 fin >> variable 文件的格式如下所示 1 2 3 4 5 即使有额外的回车,这个循环也应该可以工作: double d; while( fin >> d ) { std::cout << "The value is: " << d <<

好的,我有这个问题。出于某种原因,每当我在Linux中读取文件时。它在线路的末端有一个额外的回车。这导致我的程序出错。所以我想知道,在从每一行提取双精度的同时,如何测试行尾条件

 fin >> variable
文件的格式如下所示

1
2
3
4
5

即使有额外的回车,这个循环也应该可以工作:

double d;
while( fin >> d ) {
  std::cout << "The value is: " << d << "\n";
}
double-d;
而(fin>>d){

std::cout有关格式的更多信息将提供更好的建议。您当前如何读取该文件?显示您的代码。它可能有一个额外的“\r”,因为它来自Windows。不,该文件的内容是由程序的另一部分创建的,所以我猜它一定来自提取操作符(
operator>
)吃空格,包括回车。如果你吃了
fin>>变量
,你应该无法检测任何回车,更不用说额外的回车了。请更详细地描述你的程序在做什么,以及出了什么问题。