将函数输出写入文本文件?

时间:2014-04-23 19:02:57

标签: c++

我正在制作一个程序,从一个文件中读取一组名称和数字,将这些数字表示为一个比例,然后将它们打印到终端。我想知道如何将函数的输出重定向到单独的文件。我已准备好输出文件,但不确定如何重定向我的功能'输出到它。

我没有在这里包含这些功能,这些功能正常 - 只是通话。

int main(){
ifstream input;
ofstream output;
string inputname, outputname, name;
int num1, num2;
cout<<"Input file?\n";
cin>>inputname;
cout<<"Output file?\n";
inFile.open(inputname.c_str());
cin>>outputfile;
outFile.open(outputname.c_str());

while(!input.eof()&&!output.eof()){
    input>>name>>num1>>num2;
    lists (name);
    value (num1, num2);
}

input.close()
output.close()

return 0;
}

2 个答案:

答案 0 :(得分:5)

查看Input/Output with files

示例:

ofstream myfile;
myfile.open ("example.txt");
myfile << "Writing this to a file.\n";
myfile.close();

如您所见,它非常类似于您从 fileA获取数据的方式。

答案 1 :(得分:0)

您有多个未定义的变量(始终在发布前测试您的程序!)。而且你没有正确检查输入文件上的eof。您需要在读取操作后立即测试eof,看它是否成功。

int main(){

  cout << "Input file?\n";
  string inputname;
  cin >> inputname;
  ifstream input(inputname.c_str());
  if (!input) return 1; // handle error however you wish

  cout << "Output file?\n";
  string outputname;
  cin >> outputname;
  ofstream output(outputname.c_str());
  if (!output) return 2;

  while (1) {
    string name;
    int num1, num2;
    input >> name >> num1 >> num2;
    if (!input) break;
    lists(name);
    value(num1, num2);
  }

  return 0;
}