嘿伙计们有人能告诉我如何通过控制台向主要功能传递不同的参数而不是char **
吗?
我想介绍一个int值。
答案 0 :(得分:4)
您无权将参数类型更改为main()
。允许的替代方案由标准设置,某些实现允许某些特定的替代方案作为扩展。这并不妨碍您指定整数命令行参数;程序只会将其作为字符串接收,然后您必须将其转换。
示例:
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv) {
if (argc > 1) {
char *end;
long myint = strtol(argv[1], &end, 10);
if (*end) {
fputs("Argument is not an integer\n", stderr);
} else {
printf("The argument was %ld\n", myint);
}
}
}
答案 1 :(得分:0)
命令行参数总是作为字符串传递 - 如果需要数字参数,则需要自己进行转换(为简洁起见,省略了错误检查和验证):
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char **argv )
{
int arg1 = strtol( argv[1], NULL, 0 );
double arg2 = strtod( argv[2], NULL );
...
}