将整数参数传递给 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;
}