gpt4 book ai didi

命令行参数说明

转载 作者:行者123 更新时间:2023-11-30 17:54:44 25 4
gpt4 key购买 nike

我想让这个程序在 main() 中进行打印,只是没有命令行参数。如果有命令行参数(应该只是一个整数),它应该运行函数 bitcount()

我该如何去做呢?如果没有命令行参数,我不确定这将如何正常工作。

如何检查用户是否输入了命令行参数?如果确实如此,请运行 bitCount() 而不是 main()。但是,如果他们不放置任何命令行整数参数,那么它将只运行 main。

例如 ./bitCount 50 应调用 bitCount 函数但 ./bitCount 应该只运行 main

这是我到目前为止所拥有的:

#include <stdio.h>
#include <stdlib.h>

int bitCount (unsigned int n);
int main ( int argc, char** argv) {

printf(argv);
int a=atoi(argv);

// int a = atoi(argv[1]);

printf ("# 1-bits in base 2 representation of %u = %d, should be 0\n",
0, bitCount (0));
printf ("# 1-bits in base 2 representation of %u = %d, should be 1\n",
1, bitCount (1));
printf ("# 1-bits in base 2 representation of %u = %d, should be 16\n",
2863311530u, bitCount (2863311530u));
printf ("# 1-bits in base 2 representation of %u = %d, should be 1\n",
536870912, bitCount (536870912));
printf ("# 1-bits in base 2 representation of %u = %d, should be 32\n",
4294967295u, bitCount (4294967295u));
return 0;
}

int bitCount (unsigned int n) {
//stuff here
}

最佳答案

argv 是一个字符串数组,其中包含程序名称,后跟所有参数。 argc 是 argv 数组的大小。程序名称的 argc 始终至少为 1。

如果有参数 argc 将 > 1。

所以,

if (argc > 1)
{
/* for simplicity ignore if more than one parameter passed, just use first */
bitCount(atoi(argv[1]));
}
else
{
/* do stuff in main */
}

关于命令行参数说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14782103/

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