我正在制作一个程序,从一个文件中读取一组名称和数字,将这些数字表示为一个比例,然后将它们打印到终端。我想知道如何将函数的输出重定向到单独的文件。我已准备好输出文件,但不确定如何重定向我的功能'输出到它。
我没有在这里包含这些功能,这些功能正常 - 只是通话。
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;
}
答案 0 :(得分:5)
示例:
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;
}