【发布时间】:2013-05-04 22:50:38
【问题描述】:
昨天我用 C++ 编写了一个简单的程序,它使用通过命令行传递的参数。
E.G. myDrive:\myPath\myProgram.exe firstWord secondWord
程序运行良好,可以做它必须做的事情,但我有点好奇:
我必须先写argc --;才能很好地使用它,否则我会出现运行时崩溃[编译器不会说话!]。
尤其是argc,当我在运行程序时没有给出任何词作为参数时,这让我感到很糟糕......
现在它可以工作了,所以一点也不差,但我想知道为什么会这样!
[附:制作argc --; 并打印它,它会将0 作为值!]
编辑:
这里所有使用argc的指令
int main(int argc, char *argv[]) {
[...]
argc --;
if(argc > 0){
if(firstArg.find_last_of(".txt") != string::npos){
reading.open(argv[1], ios::binary);
[...]
}
}
if ((!(firstArg.find_last_of(".txt") != string::npos)) && argc > 0){
[...]
for(int i = 1; i <= argc; i ++){
[...]
toTranslate = argv[i][j];
[...]
toTranslate = argv[i][j];
}
}
}
【问题讨论】:
-
你能展示一些演示问题的代码吗?
-
我确定你写过类似
i<=argc的东西。顺便给我们看一下代码。 -
我编辑答案,请稍等!
-
你在linux下吗?
getopt? -
我在Windows 8下!
标签: c++ command-line-arguments