2012-04-06 80 views
0

我是一名使用Qt構建GUI應用程序的學生程序員。此應用程序的主要目的是打開我們的一些舊樣式文件,允許更好的編輯,然後以新的格式和文件擴展名保存文件。最近我被要求允許從終端進行這種轉換。雖然我知道argv和argc與他們所代表的一致,但我不確定如何實現他們想要的。例如,如何處理相對路徑與絕對......也許如何從相對絕對;也許這些都不是必需的。我的編程經驗主要與guis有關,所以這對我來說有點新鮮。構建argv和argc

用戶想下面從終端

application -o /fileLocation /fileDestination template(to determine new format) 

我開始使用循環運行和if語句開始實現這一點,當我意識到那我可能會採取撥錯的方法來這一切。如果QT有這個機會,我也會非常感興趣!這裏是我已經開始提出:

int main(int argc, char *argv[]) 
{ 
    if(argc > 1) 
    { 
     for(int i = 0; i < argc; i++) 
     { 
      if(argv[i] == "-c") 
      { 
       QString fileName = QString::fromStdString(argv[i+1]); 
       QString fileDestination = QString::fromStdString(argv[i+2]); 
       QString templateName = QString::fromStdString(argv[i+3]); 
       QFile fileToConvert(fileName); 
       if(fileToConvert.open(QFile::ReadOnly)) 
       { 
       //do stuff 

感謝您閱讀我的文章,並非常感謝您爲幫助我解決此問題做出的任何貢獻。

回答

2

if(argv[i] == "-c")

你不能比較C字符串這樣。你可以比較的人物,所以你可以做
if(argv[i][0] == '-' && argv[i][1] == 'c')

但在Qt的,你應該使用的QApplication ::參數見Obtaining command line arguments in a Qt application

+0

優秀馬丁!感謝您在這裏設置正確的課程! – 2012-04-09 06:38:20

相關問題