我正在写一个C程序,我使用6个变量a,b,c,d,e,f
a,b,c是常量值,我应该从命令行作为参数传递。
d,e,f将是结构数组的大小。
typedef struct
{
blah blah
} ex;
ex ex0[d];
我对如何将所有这些作为参数传递感到非常困惑。现在我已经硬编码了这些值,显然我不应该这样做。
答案 0 :(得分:7)
这应该让你开始:
int main(int argc, char* argv[]) {
// argc - number of command line arguments
// argv - the comand line arguments as an array
return 0;
}
答案 1 :(得分:3)
传递给程序的所有参数都存储在主函数的第二个参数
中int main(int argc, char* argv[]) // or int main(argc, char** argv)
因此您可以通过argc [3]轻松访问第4个参数。但它不是int,它是字符串,所以你需要解析它。有标准库既可以从argc中获取实际参数,也可以根据需要解析它们。但是在临时程序中没有必要使用它们,因此您的代码可能如下所示:
typedef struct
{
blah blah
} ex;
int main(int argc, char* argv[])
{
ex ex0[(int)argv[3]]; // i am not sure if it works on pure C, so you can try int atoi(char *nptr) from stdlib.h
}
答案 2 :(得分:1)
使用命令行参数
int main(int argc, char* argv[]) // or int main(int argc, char **argv)
{
// argc is the argument count
//argv : The array of character pointers is the listing of all the arguments.
//argv[0] is the name of the program.
//argv[argc] is a null pointer
}