gpt4 book ai didi

c++ - 如何处理命令行参数?

转载 作者:行者123 更新时间:2023-11-30 01:22:23 25 4
gpt4 key购买 nike

昨天我用 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];
}
}
}

最佳答案

参数还包括程序本身的名称,因此argc 始终至少为 1。

这是典型的循环:

int main(int argc, char * argv[])
{
for (int i = 0; i != argc; ++i)
{
std::cout << "Argument #" << i << ": " << argv[i] << "\n";
}
}

或者你可以向后打印:

while (argc--)
{
std::cout << argv[argc] << "\n";
}

关于c++ - 如何处理命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16375453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com