2015-04-08 90 views
-1

一個程序,我想文件路徑分配給從終端程序,指定文件路徑,從終端

我的程序裏面的代碼是這樣的:

#include<iostream> 

int main{ 

fstream file; 
file.open("path",ios::in); 
... 

,我想使用

./myprogram /filepath 

在終端,讓我的程序接受的路徑, 我怎麼能實現呢?

+0

我不知道你在用什麼編譯器,但是'int main {'好像它不應該編譯。 – crashmstr

回答

2

您可以使用命令行參數。但是你的主體應該如下圖所示。 其中argc顯示參數計數(包括可執行文件本身)和argv顯示參數(包括可執行文件本身的名稱)。所以默認爲argc = 1argv = {"myProgram"}。 (如果你的輸出文件是「myProgram」)

int main (int argc, char* argv[]) 
{ 
    fstream file; 
    if (argc == 2){ 
     file.open(argv[1],ios::in); 
    }else{ 
     // handle the error 
    } 
} 

當你運行程序:

./myProgram "/filepath" 

但使用argv[1],以避免分段錯誤,當沒有前一定要檢查argc,附加的參數。

2

你的主要函數聲明應該是這樣的:

int main (int argc, char *argv[]) 

的整數,ARGC是參數計數。它是從命令行傳遞給程序的參數的數量,包括程序的名稱。

字符數組指針是所有參數的列表。

我建議使用Boost.Program_options解析參數。