我的问题是如何通过 argv[]
传递 int
参数。
我要使用的表格是以下内容:虽然nthreads和字母可以是可选的,但必须提供file1。
./test [-t NTHREADS] [-l LETTER] FILE1
我该如何处理?
你不能。从定义上讲,所有对main()
的参数都是char*
。如果您愿意,可以将它们转换,但这是由您自己酌情决定的。像getopt
这样的工具使这样的编写界面变得容易得多,并且可以根据需要进行转换。
您可以使用atoi((函数,该函数在stdlib.h标准库中可用,或者为更强大的解决方案,您可以使用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;
}