我正在尝试编译总共3个文件但无法获取。该代码适用于visual ++。我已将所有3个文件上传到同一个目录中,并使用以下命令。
g ++ -o edit Album.cpp lab8.cpp
我的文件名列在下面 Album.cpp Album.h lab8.cpp
请注意,代码是用Visual Studio C ++编写的,并在那里编译得很好。
以下结果
lab8.cpp:在函数'std :: vector read_album_file(std :: string)'中: lab8.cpp:142:25:错误:没有匹配函数来调用'std :: basic_ifstream :: basic_ifstream(std :: string&)' ifstream read(filename); // ifstream用于从文件中读取 ^ lab8.cpp:142:25:注意:候选人是: 在lab8.cpp中包含的文件中:38:0: /usr/include/c++/4.8/fstream:467:7:注意:std :: basic_ifstream< _CharT,_Traits> :: basic_ifstream(const char *,std :: ios_base :: openmode)[with _CharT = char; _Traits = std :: char_traits; std :: ios_base :: openmode = std :: _ Ios_Openmode] basic_ifstream(const char * __s,ios_base :: openmode __mode = ios_base :: in) ^ /usr/include/c++/4.8/fstream:467:7:注意:参数1从'std :: string {aka std :: basic_string}'到'const char *'没有已知的转换 /usr/include/c++/4.8/fstream:453:7:注意:std :: basic_ifstream< _CharT,_Traits> :: basic_ifstream()[with _CharT = char; _Traits = std :: char_traits] basic_ifstream():__ command_type(),_ M_filebuf() ^ /usr/include/c++/4.8/fstream:453:7:注意:候选人需要0个参数,1个提供 /usr/include/c++/4.8/fstream:427:11:注意:std :: basic_ifstream :: basic_ifstream(const std :: basic_ifstream&) class basic_ifstream:public basic_istream< _CharT,_Traits> ^ /usr/include/c++/4.8/fstream:427:11:注意:参数1从'std :: string {aka std :: basic_string}'到'const std :: basic_ifstream&'
没有已知的转换答案 0 :(得分:0)
查看ifstream的构造函数原型。它需要const char *
和一个可选参数,你需要写filename.c_str()