我的问题是如何通过int
传递argv[]
个参数。
我想要使用的表单如下:虽然NTHREADS和LETTER可以是可选的,但必须提供FILE1。
./test [-t NTHREADS] [-l LETTER] FILE1
我该如何处理?
答案 0 :(得分:3)
你做不到。根据定义,main()
的所有参数均为char*
。如果你想要你可以转换它们,但这是由你自己决定的。像getopt
这样的工具使得编写这样的接口变得更加容易,并且可以根据需要使用它们进行转换。
答案 1 :(得分:1)
您可以使用stdlib.h标准库中提供的atoi()函数,也可以使用strtol()的更强大的解决方案,该函数也在stdlib.h中
示例:
#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;
}