2014-10-16 56 views
-2

我有一個文本文件被指定爲路徑/ home/project /中的命令行輸入。 如何通過指定路徑並從argv []獲取文件名來使用ifstream打開文件?如何在C++中使用filepath和argv []打開文件?

目前我正在嘗試如下;

int main(int argc, char* argv[]){ 
    ifstream fin; 
    stringstream file_path; 
    string file; 
    file_path << "/home/project/" << argv[1]; 
    file = file_path.str(); 
    fin.open(file) //not working 
.. 
} 

請有人幫我這個。

+0

什麼不工作?是否有錯誤? – 0x499602D2 2014-10-16 23:21:59

+0

是的,它會引發錯誤。 「沒有匹配函數調用'std :: basic_ifstream :: open(std :: string&)」 – user3652549 2014-10-16 23:29:01

+1

然後使用命令行選項「-std = C++ 11」進行編譯,或者使用下面的答案進行編譯。 – 0x499602D2 2014-10-16 23:29:52

回答

0

您需要使用

fin.open(file.c_str()); 

或者你可以編譯文件,-std=c++11,因爲首先是C++ 11 ifstream支持在字符串中獲取文件名。見參考文獻here

相關問題