[問題] 開檔案

看板EE_DSnP作者 (D差耶)時間15年前 (2009/04/17 19:21), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
無論是查書或google,他們都建議我如下撰寫讀檔程式碼: bool CmdParser::openDofile(const string& dof) { ifstream _dofile(dof, ios::in); ... 然而,compile總是不能過。 cmdParser.cpp: In member function `bool CmdParser::openDofile(const std::string&)': cmdParser.cpp:36: error: no matching function for call to `std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::_Ios_Openmode&)' /usr/lib/gcc/i386-redhat-linux/3.4.4/../../../../include/c++/3.4.4/iosfwd:90: note: candidates are: std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(const std::basic_ifstream<char, std::char_traits<char> >&) /usr/lib/gcc/i386-redhat-linux/3.4.4/../../../../include/c++/3.4.4/fstream:524: note: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>] /usr/lib/gcc/i386-redhat-linux/3.4.4/../../../../include/c++/3.4.4/fstream:509: note: std::basic_ifstream<_CharT, _Traits>::basic_ifstream() [with _CharT = char, _Traits = std::char_traits<char>] 請問問題出在哪裡呢?謝謝 順便補充: void CmdParser::closeDofile() { _dofile.close(); 請問為什麼沒辦法compile過呢? 查遍網路也得不到答案:( 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.7.59 ※ 編輯: dxi 來自: 140.112.7.59 (04/17 19:23)

04/17 19:29, , 1F
dofile是pointer 先new ifstream給它
04/17 19:29, 1F

04/17 19:29, , 2F
另外dof要改成dof.c_str() (他只吃char*)
04/17 19:29, 2F

04/17 19:33, , 3F
其實我不確定是不是只吃char*, 不過我改c_str就過了
04/17 19:33, 3F

04/17 19:40, , 4F
可是他現在換成說:`_dofile' cannot be used as a function
04/17 19:40, 4F

04/17 20:26, , 5F
要寫_dofile->close()才會過吧
04/17 20:26, 5F
文章代碼(AID): #19w6OrVE (EE_DSnP)