构建argv和argc
问题描述:
我是一名使用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
感谢您阅读我的文章,并非常感谢您为帮助我解决此问题做出的任何贡献。
答
if(argv[i] == "-c")
你不能比较C字符串这样。你可以比较的人物,所以你可以做if(argv[i][0] == '-' && argv[i][1] == 'c')
但在Qt的,你应该使用的QApplication ::参数见Obtaining command line arguments in a Qt application
优秀马丁!感谢您在这里设置正确的课程! – 2012-04-09 06:38:20