首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建argv和argc

构建argv和argc
EN

Stack Overflow用户
提问于 2012-04-07 07:25:36
回答 1查看 3.6K关注 0票数 0

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

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

代码语言:javascript
复制
application -o /fileLocation /fileDestination template(to determine new format)

我开始使用for循环和if语句来实现这一点,因为我意识到我可能会采用worng方法来处理所有这些问题。如果QT有这方面的东西,我也会很感兴趣!这是我开始想出来的:

代码语言:javascript
复制
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

感谢您阅读我的帖子,非常感谢您为帮助我解决这个问题所做的贡献。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-07 12:49:24

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

你不能像那样比较C字符串。你可以比较字符,所以你可以这样做

if(argv[i][0] == '-' && argv[i][1] == 'c')

但在Qt中,您应该使用QApplication::参数,请参阅Obtaining command line arguments in a Qt application

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10050338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档