2012-04-06 77 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

相关问题