c语言命令行参数问题

img


这上面的代码,应该要用什么环境才能实现?
书上的一个对命令行参数进行操作的例子,代码放到编译器上不能出现书上展示的结果,是对编译器还有环境有什么要求吗?

供参考:https://blog.csdn.net/theLostLamb/article/details/79304203

将代码编译好后,在命令行进入代码所在目录,然后输入程序名以及各命令参数,然后程序执行后,就会将输入的参数打印出来;

如果是在集成开发环境(IDE)中,可以在相应位置设置命令行参数(例如,在Dev-C++ 5.11中的位置是,菜单-->运行-->参数-->传递给主程序的参数),然后再编译运行,也同样可以打印出相应命令行参数。

测试如下:

参考链接:


C 命令行参数 | 菜鸟教程 C 命令行参数 执行程序时,可以从命令行传值给 C 程序。这些值被称为命令行参数,它们对程序很重要,特别是当您想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。 命令行参数是使用 main() 函数参数来处理的,其中,argc 是指传入参数的个数,argv[] 是一个指针数组,指向传递给程序的每个参数。下面是一个简单的实例,检查命令行是否有提供参数,并根据参数执行相应的动作: #include int ma.. https://www.runoob.com/cprogramming/c-command-line-arguments.html


#include <stdio.h>

// https://blog.csdn.net/qq_35692077/article/details/105929890
// https://www.runoob.com/cprogramming/c-command-line-arguments.html 
// argc  命令行参数个数,包括程序命令本身
// argv  里存储了各命令行参数,argv[0]就是程序名本身,在这个程序里是 "repeat" 
int main(int argc,int **argv){
    
    int count;
    
    printf("The command line has %d arguments:\n",argc-1);  // 打印除程序名外的其他参数的个数 
    
    // 打印除程序名外的的其他命令行参数 
    for(count=1;count<argc;count++){
        printf("%d: %s\n",count,argv[count]); 
    }
    printf("\n");    
    
    return 0;
    
} 

img

【以下回答由 GPT 生成】

这段代码是一个简单的C语言程序,用于打印命令行参数的数量和内容。

在C语言中,命令行参数是在程序启动时通过命令行传递给程序的。可以在命令行中为程序提供参数,这些参数将作为main()函数的参数传入。在Windows系统中,可以通过cmd.exe或PowerShell运行程序,并使用空格分隔参数来提供命令行参数;在Linux或macOS系统中,可以通过终端运行程序,并使用空格分隔参数来提供命令行参数。

上述代码中的argc参数表示命令行参数的数量,argv参数是一个指向指针的指针,存储着每个命令行参数的地址。

在终端中运行上述代码时,可以在程序名称后添加多个参数,用空格分隔。例如,可以使用以下命令运行程序:

./program arg1 arg2 arg3

在这种情况下,argc的值将是4,argv将是一个指针数组,其中argv[0]指向程序名称,argv[1]指向arg1,argv[2]指向arg2,argv[3]指向arg3。

然后,上述代码使用一个循环遍历argv数组,打印每个命令行参数的索引位置和内容。

请注意,上述代码是标准C,并不依赖于特定的编译器或操作系统。因此,在正常的C语言环境中,如gcc或clang编译器的任何版本均可正确运行。只需要确保在运行程序时通过命令行提供了适当的参数即可。

如果您在特定环境下无法获得正确的结果,请提供更多详细信息,以便进一步分析和解决该问题。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^