将整数参数传递给C中的main函数

时间:2017-05-05 23:11:05

标签: c multithreading arguments main

我的问题是如何通过int传递argv[]个参数。

我想要使用的表单如下:虽然NTHREADS和LETTER可以是可选的,但必须提供FILE1。

  

./test [-t NTHREADS] [-l LETTER] FILE1

我该如何处理?

2 个答案:

答案 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;
}