首先,它不是一个家庭作业问题。我知道如何读取和写入文件,如果我已经知道所涉及文件的名称,则用C ++解析行,但我需要为输入和输出的不同文件名运行相同的代码,并且它将被多次调用。任何帮助将不胜感激:)
#include <iostream>
#include <fstream>
#include <math.h>
#include <sstream>
#include <string>
using namespace std;
void file_reader(ifstream &file_read, ofstream &file_out){}
int main(){
ifstream file_read("temp.lmps",ios::in);
ofstream file_out("data.lmps",ios::out);
file_reader(file_read,file_out);
return 0;
}
答案 0 :(得分:1)
选项1
更改
void file_reader(ifstream &file_read, ofstream &file_out){}
使用istream
和ostream
代替ifstream
和ofstream
。
然后,使用std::cin
和std::cout
调用它。
void file_reader(std:istream& in_stream, std::ostream& out_stream){}
int main()
{
file_reader(std::cin, std::cout);
return 0;
}
现在你可以使用
program.exe < input.txt > output.txt
选项2
将输入文件和输出文件作为参数传递给程序。
int main(int argc, char** argv)
{
std::ifstream file_read(argv[1],ios::in);
std::ofstream file_out(argv[2],ios::out);
file_reader(file_read, file_out);
return 0;
}
现在你可以使用
program.exe input.txt output.txt