将整数参数传递给 C 中的主函数
Passing integer arguments to the main function in C
我的问题是如何通过 argv[]
.
传递 int
个参数
我想使用的形式如下:虽然NTHREADS和LETTER可以是可选的,但必须提供FILE1。
./test [-t NTHREADS] [-l LETTER] FILE1
我该如何处理?
你不能。根据定义,main()
的所有参数都是 char*
。如果您愿意,可以转换它们,但这由您自行决定。有像getopt
这样的工具可以让编写这样的接口变得容易很多,并且可以根据需要使用它们进行转换。
您可以使用 stdlib.h 标准库中提供的 atoi() 函数,或者为了获得更强大的解决方案,您可以使用也在 stdlib.h 中的 strtol()
示例:
#include <stdio.h>
#include <stdlib.h>
int main( int numArgs, char **argList )
{
int num, i;
for( i = 0; i < numArgs; i++ )
{
fprintf( stdout, "\nArgument #%i (\"$s\") is %li as a number.", i, argList[i], strtol(argList[i], NULL, 10) );
}
return 0;
}
我的问题是如何通过 argv[]
.
int
个参数
我想使用的形式如下:虽然NTHREADS和LETTER可以是可选的,但必须提供FILE1。
./test [-t NTHREADS] [-l LETTER] FILE1
我该如何处理?
你不能。根据定义,main()
的所有参数都是 char*
。如果您愿意,可以转换它们,但这由您自行决定。有像getopt
这样的工具可以让编写这样的接口变得容易很多,并且可以根据需要使用它们进行转换。
您可以使用 stdlib.h 标准库中提供的 atoi() 函数,或者为了获得更强大的解决方案,您可以使用也在 stdlib.h 中的 strtol()
示例:
#include <stdio.h>
#include <stdlib.h>
int main( int numArgs, char **argList )
{
int num, i;
for( i = 0; i < numArgs; i++ )
{
fprintf( stdout, "\nArgument #%i (\"$s\") is %li as a number.", i, argList[i], strtol(argList[i], NULL, 10) );
}
return 0;
}