在C中向主函数传递整数参数

在C中向主函数传递整数参数,c,multithreading,arguments,main,C,Multithreading,Arguments,Main,我的问题是如何通过argv[]传递int参数 我想使用的表单如下:虽然n个字符和字母可以是可选的,但必须提供FILE1 /test[-t第n个字母][l字母]文件1 我该怎么处理呢?你不能。根据定义,main()的所有参数都是char*。如果你愿意,你可以转换它们,但这是由你自己决定的。有这样的工具可以使编写这样的接口变得更容易,并且可以根据需要使用它们进行转换。你不能。根据定义,main()的所有参数都是char*。如果你愿意,你可以转换它们,但这是由你自己决定的。有这样的工具可以使编写这样的

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

我想使用的表单如下:虽然n个字符和字母可以是可选的,但必须提供FILE1

/test[-t第n个字母][l字母]文件1


我该怎么处理呢?

你不能。根据定义,
main()
的所有参数都是
char*
。如果你愿意,你可以转换它们,但这是由你自己决定的。有这样的工具可以使编写这样的接口变得更容易,并且可以根据需要使用它们进行转换。

你不能。根据定义,
main()
的所有参数都是
char*
。如果你愿意,你可以转换它们,但这是由你自己决定的。有这样的工具可以使编写这样的接口变得更加容易,并且可以根据需要使用它们进行转换。

您可以使用atoi()函数,该函数可以在stdlib.h标准库中获得,也可以使用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;
}
#包括
#包括
int main(int numArgs,char**argList)
{
int num,i;
对于(i=0;i
您可以使用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;
}
#包括
#包括
int main(int numArgs,char**argList)
{
int num,i;
对于(i=0;i
您只能传递到char*的主要变量。您仍然可以。这是独立环境还是主机环境?@Olaf根据命令行用法和参数样式,这可能是POSIX标准接口。您只能传递到char*的主要变量。您仍然可以。这是独立环境还是主机环境?@Olaf根据命令行用法和参数样式,这可能是POSIX标准接口。不太正确。对于独立环境,
main
可以有任何签名(和名称)。@Olaf:我们只讨论托管环境,除非有人明确指出他们在独立环境中工作。在独立环境中有太多的警告,这会让一切都无法回答。你的评论是毫无意义的吹毛求疵。请删除它,然后将其标记为已过时。我现在解决了问题。我可以在main中使用可选的命名参数吗?值得打开一个包含您编写的代码的新问题。这是一个新问题。我要到24小时新帐户才能开始提问,但这是一个问题我的主要功能需要可选的命名参数命名的参数命名的是一个文件这个参数必须在任何情况下我怎么做不太正确。对于独立环境,
main
可以有任何签名(和名称)。@Olaf:我们只讨论托管环境,除非有人明确指出他们在独立环境中工作。在独立环境中有太多的警告,这会让一切都无法回答。你的评论是毫无意义的吹毛求疵。请删除它,然后将其标记为已过时。我现在解决了问题。我可以在main中使用可选的命名参数吗?值得打开一个包含您编写的代码的新问题。这是一个新问题。在24小时新帐户之前,我无法打开一个问题,但这是一个问题我的主要功能需要可选和命名参数命名的参数命名的是一个文件此参数必须在任何情况下如何做