因此,我尝试从名为input_file的文件中读取数据,直到到达末尾。我尝试过使用while (!input_file.eof()),但它会无限循环。我在论坛上四处张望,并尝试使用while (getline(input_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);
}

input_file包含一行Confucius say: Madam, I'm Adam.,后跟回车符。

谢谢您的帮助!

PS:我希望解决方案保持简单,因为这似乎是一个非常简单的问题。

最佳答案

编辑:确保您具有正确的文件名!我尝试了一个虚假的文件名,并按您的描述打印了空白行。
我用正确的文件名尝试了您的代码,它对我有用


在main中添加以下行:

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

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

  CalfFlac(input_file);
}

08-17 15:20