从文件中读取输入
问题描述:
所以我在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,所以不知道为什么它这样做
答
对不起,没关系;我发布这个后立刻找到了答案。 的解决方案是具有name.c_string()作为代替参数,如绳支承体C++只是加入11
答
正如@克里斯指出的,预C++ 11,ifs.open
期望一个char*
,不一个std::string
。尝试ifs.open(name.c_str())
。
未来,请尝试[参考](http://en.cppreference.com/w/cpp/io/basic_ifstream/open)。请注意,函数有两个重载,其中一个重载在C++ 11中可用。 – chris