LF4*_*LF4 1 c++ filestream argv
我有一个程序,需要多个文件作为输入.我想要做的是使用相同的文件流?尝试使用第二个文件打开流时,我一直收到错误.为什么代码无效并在编译时创建错误?argv [2]是一个const char*.
错误:无法匹配调用'(std :: ifstream)(char*&)'
ifstream fin(argv[1]);
//work with filestream
fin.close();
fin(argv[2]);
//work with filestream
fin.close();
Run Code Online (Sandbox Code Playgroud)
第一行ifstream fin(argv[1]);是唤起ifstream构造函数,构造函数只能在每个对象上调用一次.您的代码试图再次调用它.尝试使用open()代替:
fin.open(argv[2]);
Run Code Online (Sandbox Code Playgroud)
顺便说一下,你可能还想在重新打开之前调用clear()ifstream.原因是如果第一个open()(或甚至close())失败,ifstream将设置错误位,并且不会被close()清除.