命令行参数说明和程序错误

时间:2014-07-04 00:10:49

标签: c command-line-arguments

我已经阅读了很多关于与此主题相关的stackoverflow的问题,但仍然没有得到它。请解释命令行参数的正确使用。它们在代码开始执行时传递的是我们关注的内容吗?但最新的用途。请链接到这种类型的一些信息性问题,我可以完全阅读和理解这个主题。感谢

#include <stdio.h>

main(int argc,char *argv[])
{
int i;
for(i= 1; i<argv; i++) \\error argument count should be used instead argument vector
    printf("%s%s", argv[i], (i< argc-1) ? " " : "" );
printf("\n");
return 0;
}

1 个答案:

答案 0 :(得分:2)

命令行参数用于在运行时将信息传递给程序,而不需要从启动它的用户/脚本进行任何额外的交互。这可以包括程序正在处理的文件的路径或定义它的配置和行为的标志。

通过使用这些而不是scanf等功能,用户可以更轻松地自动启动它,并将其与其他程序集成。

编辑:原始问题包含的代码有一个错误,其中argv被意外地用来代替argc,我将在这里为后代留下问题的答案:


你的for循环行应如下所示:

for(i= 1; i<argc; i++)

argc给出已传递给程序的参数数量。在您发布的代码中,您试图将计数器与argv进行比较,{{1}}是指向内存中保存参数的空间的指针。对于计算机,这看起来像一个整数,因此它可以正常工作。但绝对不是你想要的。