文件名创建 Ifstream 对象时出错
Error on filename creating Ifstream object
这会失败的任何特定原因?
std::string r = "Hej.whatever";
std::string const *p = &r;
std::ifstream file ((*p).c_str(), std::ios::in, std::ios::ate);
std::ifstream file ((*p), std::ios::in, std::ios::ate);
error: no matching function for call to
‘std::basic_ifstream<char>::basic_ifstream(const string&,
const openmode&, const openmode&)’
std::ifstream file ((*p), std::ios::in, std::ios::ate);
你需要通过按位或(|
)传递几个模式:
std::ifstream file ((*p), std::ios::in | std::ios::ate);
std::ifstream file2 ((*p), std::ios::in | std::ios::ate);
你可以从第一次调用中删除 .c_str()
,没有必要
这会失败的任何特定原因?
std::string r = "Hej.whatever";
std::string const *p = &r;
std::ifstream file ((*p).c_str(), std::ios::in, std::ios::ate);
std::ifstream file ((*p), std::ios::in, std::ios::ate);
error: no matching function for call to
‘std::basic_ifstream<char>::basic_ifstream(const string&,
const openmode&, const openmode&)’
std::ifstream file ((*p), std::ios::in, std::ios::ate);
你需要通过按位或(|
)传递几个模式:
std::ifstream file ((*p), std::ios::in | std::ios::ate);
std::ifstream file2 ((*p), std::ios::in | std::ios::ate);
你可以从第一次调用中删除 .c_str()
,没有必要