我是一名学生程序员,使用Qt构建用于工作的GUI应用程序。这个应用程序的主要目的是打开一些旧样式的文件,允许更好的编辑,然后以新的格式和文件扩展名保存文件。最近,我被要求允许从终端进行这种转换。虽然我知道argv和argc是什么,以及它们代表什么,但我不确定如何实现它们想要的东西。例如,如何处理相对路径与绝对路径...也许如何从相对中获取绝对;也许这些都不是必需的。我的编程经验主要是使用guis,所以这对我来说还是个新鲜事。
用户希望从终端运行以下内容
application -o /fileLocation /fileDestination template(to determine new format)我开始使用for循环和if语句来实现这一点,因为我意识到我可能会采用worng方法来处理所有这些问题。如果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感谢您阅读我的帖子,非常感谢您为帮助我解决这个问题所做的贡献。
发布于 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
https://stackoverflow.com/questions/10050338
复制相似问题