Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 返回空行或无限循环的EOF_C++_Eof_Getline - Fatal编程技术网

C++ 返回空行或无限循环的EOF

C++ 返回空行或无限循环的EOF,c++,eof,getline,C++,Eof,Getline,因此,我试图从一个名为input\u file的文件中读取,直到它到达末尾。我尝试过在(!input_file.eof())时使用,但它仍然是一个无限循环。我在论坛上四处查看并尝试使用while(getline(input\u file,line)),但这只返回一个空行。我没有像其他问题一样同时使用getline()和>>操作符。 我该怎么做?这是我的密码: #include <iostream> #include <fstream> #include <strin

因此,我试图从一个名为
input\u file
的文件中读取,直到它到达末尾。我尝试过在(!input_file.eof())时使用
,但它仍然是一个无限循环。我在论坛上四处查看并尝试使用
while(getline(input\u file,line))
,但这只返回一个空行。我没有像其他问题一样同时使用getline()和>>操作符。 我该怎么做?这是我的密码:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

// Main program
void CalfFlac(ifstream& input_file) {
  string text;
  string line;
  while (getline(input_file, line)) {
    text += line;
  }
  cout << text << endl;
}

int main() {
  ifstream input_file;
  input_file.open("calfflac.in");

  CalfFlac(input_file);
}
#包括
#包括
#包括
使用名称空间std;
//主程序
作废CalfFlac(ifstream和input_文件){
字符串文本;
弦线;
while(getline(输入文件,行)){
文本+=行;
}

cout编辑:确保您有正确的文件名!我尝试了一个伪造的文件名,它打印了一个空白行作为您的描述。 我用正确的文件名尝试了您的代码,它对我有效

在main中添加此行:

int main() {
  ifstream input_file;
  input_file.open("calfflac.in");

  if(!input_file)
    cout << "File path is wrong!";

  CalfFlac(input_file);
}
intmain(){
ifstream输入文件;
输入_file.open(“calfflac.in”);
如果(!输入_文件)

我无法重现您描述的问题。甚至尝试了各种行尾组合,如
crlf
lf
cr
。您在什么平台下测试此问题?您是否检查了文件是否成功打开?
assert(input_file);
最好不要使用“assert”检查文件,因为它们在发布模式下同样容易失败!可能重复