2015-06-21 112 views
0

所以我在C++新手,我一直在互联网上关于如何做到这一点闲逛,到目前为止,我有这样的:从文件中读取输入

void includeFile(string name){ 
    ifstream ifs; 
    ifs.open(name); 
    string commands; 
    while (getline(ifs,commands)){ 
     commandReader(ifs); 
    } 
    ifs.close(); 
} 

(commandReader是一个函数,需要一个istream)

当我尝试编译时,我得到错误“没有匹配函数的调用”,然后给我行号为ifs.open(名称)行。我已经包括fstream,所以不知道为什么它这样做

+0

未来,请尝试[参考](http://en.cppreference.com/w/cpp/io/basic_ifstream/open)。请注意,函数有两个重载,其中一个重载在C++ 11中可用。 – chris

回答

1

对不起,没关系;我发布这个后立刻找到了答案。 的解决方案是具有name.c_string()作为代替参数,如绳支承体C++只是加入11

0

正如@克里斯指出的,预C++ 11,ifs.open期望一个char*,不一个std::string。尝试ifs.open(name.c_str())