Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 建筑argv和argc_Qt_Arguments_Main_Argv_Argc - Fatal编程技术网

Qt 建筑argv和argc

Qt 建筑argv和argc,qt,arguments,main,argv,argc,Qt,Arguments,Main,Argv,Argc,我是一名学生程序员,使用Qt为工作构建GUI应用程序。此应用程序的主要目的是打开一些旧式文件,进行更好的编辑,然后以新格式和文件扩展名保存文件。最近,我被要求允许从终端进行这种转换。虽然我知道什么是argv和argc,以及它们代表什么,但我不确定如何实现它们的目标。例如,如何处理相对路径与绝对路径。。。也许如何从相对中得到绝对;也许这些都不需要。我的编程经验主要是使用GUI,所以这对我来说有点陌生 用户希望从终端运行以下内容 application -o /fileLocation /fileD

我是一名学生程序员,使用Qt为工作构建GUI应用程序。此应用程序的主要目的是打开一些旧式文件,进行更好的编辑,然后以新格式和文件扩展名保存文件。最近,我被要求允许从终端进行这种转换。虽然我知道什么是argv和argc,以及它们代表什么,但我不确定如何实现它们的目标。例如,如何处理相对路径与绝对路径。。。也许如何从相对中得到绝对;也许这些都不需要。我的编程经验主要是使用GUI,所以这对我来说有点陌生

用户希望从终端运行以下内容

application -o /fileLocation /fileDestination template(to determine new format)
我开始使用for循环和if语句来实现这一点,因为我意识到我可能会采用worn方法来实现所有这些。如果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
intmain(intargc,char*argv[])
{
如果(argc>1)
{
对于(int i=0;i
感谢您阅读我的帖子,非常感谢您为帮助我克服这个问题所做的一切贡献。

if(argv[i]==“-c”)

你不能像那样比较C字符串。你可以比较字符,所以你可以做
if(argv[i][0]='-'和&argv[i][1]='c')


但在Qt中,您应该使用QApplication::arguments,请参见

杰出的Martin!感谢您让我走上正确的道路!