首页 > 解决方案 > std::fstream 文件句柄重用问题

问题描述

我不确定这段代码有什么问题:

fstream file_h("h_input.txt");
        if(file_h.is_open()){
                while(!file_h.eof()){
                        line.clear();
                        getline(file_h, line);
                        v_hrml.push_back(line);
                }
                file_h.close();
                file_h.clear();
       }
       file_h("q_input.txt");
       if(file_h.is_open()){
                while(!file_h.eof()){
                        line.clear();
                        getline(file_h, line);
                        v_queries.push_back(line);
                }
                file_h.close();
                file_h.clear();
       }

对于打开q_input.txtreusing的代码段file_h,编译器会产生如下错误:

error: no match for call to ‘(std::fstream {aka std::basic_fstream<char>}) (const char [12])’
     file_h("q_input.txt");

欣赏你的想法。

TIA

标签: c++fstream

解决方案


您正在尝试调用一个变量。

改变

file_h("q_input.txt");

file_h.open("q_input.txt");

推荐阅读