当前位置:首页 > 行业动态 > 正文

c++ main函数的参数有哪些

C++的main函数可以没有输入参数,也可以有输入参数,而且只能有两个参数,习惯上coding如下: ,“ c++,int main(int argc, char* argv[]),` ,或者,` c++,int main(int argc, char** argv),“,argc = argument count :表示传入 main函数的数组元素个数,为int类型,而 argv = argument vector :表示传入main函数的指针数组,为char**类型。第一个数组元素argv[0]是程序名称,并且包含程序所在的完整路径。argc至少为1,即argv数组至少包含程序名。,,一般编译器默认使用argc和argv两个名称作为main函数的参数,但这两个参数如此命名并不是必须的,你可以使用任何符合C++语言命名规范的变量名,但要保证第一个参数类型为int型,第二个参数为char**型。

C++ main函数的参数有哪些?

C++ main函数是程序的入口点,它的参数主要用于接收命令行参数,在C++11及以后的版本中,main函数可以有以下几种形式:

1、无参数形式:

int main()
{
    // 代码块
}

这种形式的main函数不需要接收任何参数,但可以通过全局变量或者命令行参数传递信息。

include <iostream>
int main()
{
    int a = 3;
    int b = 4;
    int sum = a + b;
    std::cout << "Sum: " << sum << std::endl;
    return 0;
}

2、一个整数参数形式:

int main(int argc, char *argv[])
{
    // 代码块
}

这种形式的main函数接收两个参数:argc表示命令行参数的个数,argv是一个指向指针数组的指针,用于存储命令行参数。

include <iostream>
int main(int argc, char *argv[])
{
    std::cout << "Number of arguments: " << argc << std::endl;
    for (int i = 0; i < argc; ++i)
    {
        std::cout << "Argument " << i << ": " << argv[i] << std::endl;
    }
    return 0;
}

3、一个整数和一个字符指针参数形式:

int main(int argc, char *argv[])
{
    // 代码块
}

这种形式的main函数除了接收前面提到的两个参数外,还接收一个字符指针参数argv[0],它表示程序的名称。

include <iostream>
include <cstring>
int main(int argc, char *argv[])
{
    std::cout << "Program name: " << argv[0] << std::endl;
    for (int i = 1; i < argc; ++i)
    {
        std::cout << "Argument " << i << ": " << argv[i] << std::endl;
    }
    return 0;
}

4、一个整数、一个字符指针和一个浮点数参数形式:

int main(int argc, char *argv[], float f)
{
    // 代码块
}

这种形式的main函数除了接收前面提到的三个参数外,还接收一个浮点数参数f。

include <iostream>
include <cstring>
include <cstdlib> // 为了使用atof函数,需要包含cstdlib头文件
include <locale> // 为了使用num_put函数,需要包含locale头文件,并设置本地化环境为C风格(LC_ALL=C)或POSIX风格(LC_ALL=POSIX)
include <iomanip> // 为了使用setw和left等格式化输出函数,需要包含iomanip头文件,并设置本地化环境为C风格(LC_ALL=C)或POSIX风格(LC_ALL=POSIX)或Windows风格(_USE_MATH_DEFINES)或MSVC风格(_SET_MATH_MODE)或GNU风格(_GNU_SOURCE)或ISO C99风格(_POSIX_C_SOURCE)或ISO C99标准库风格(_XOPEN_SOURCE)或ISO C99线程库风格(_THREAD_SAFE)或POSIX线程库风格(_POSIX_C_SOURCE=200112L || _XOPEN_SOURCE=600 || _POSIX_C_SOURCE=200112L || _XOPEN_SOURCE=600 || _POSIX_C_SOURCE=200112L || _XOPEN_SOURCE=600 || _POSIX_C_SOURCE=200112L || _XOPEN_SOURCE=600 || _POSIX_C_SOURCE=200112L || _XOPEN_SOURCE=600 || _POSIX_C_SOURCE=200112L || _XOPEN_SOURCE=600 || _POSIX_C_SOURCE=200112L || _XOPEN_SOURCE=600 || _POSIX_C_SOURCE=200112L || _XOPEN_SOURCE=600 || _POSIX_C_SOURCE=200112L || _XOPEN_SOURCE=600 || _POSIX_C_SOURCE=200112L)或Windows风格(WIN32)或MSVC风格(/D _USING_MATH_DEFINES)或GNU风格(-D _GNU_SOURCE)或ISO C99风格(-D _POSIX_C_SOURCE=200112L)或ISO C99标准库风格(-D _XOPEN_SOURCE=600)或ISO C99线程库风格(-D _THREAD_SAFE)或POSIX线程库风格(-D _POSIX_C_SOURCE=200112L)或POSIX线程库风格(-D _POSIX_C_SOURCE=200112L)) && setlocale(LC_ALL, "") /* 如果没有定义LC_*常量,可以使用""代替 */ && setlocale(LC_NUMERIC, "C") /* 如果没有定义LC_*常量,可以使用""代替 */ && setlocale(LC_TIME, "C") /* 如果没有定义LC_*常量,可以使用""代替 */ && setlocale(LC_COLLATE, "C") /* 如果没有定义LC_*常量,可以使用""代替 */ && setlocale(LC_MONETARY, "C") /* 如果没有定义LC_*常量,可以使用""代替 */ && setlocale(LC_MESSAGES, "C") /* 如果没有定义LC_*常量,可以使用""代替 */ && setlocale(LC_CTYPE, "C") /* 如果没有定义LC_*常量,可以使用""代替 */ && setlocale(LC_ALL, NULL); /* 如果没有定义LC_*常量,可以使用NULL代替 */ std::cout.imbue(std::locale("")); /* 将标准输出流的区域设置为当前系统的默认区域 */ std::wcin.imbue(std::locale("")); /* 将标准输入流的区域设置为当前系统的默认区域 */ std::wcout.imbue(std::locale("")); /* 将标准输出流的区域设置为当前系统的默认区域 */ double f = atof(argv[argc-1]); /* 将最后一个命令行参数转换为浮点数 */ std::cout << "Program name: " << argv[0] << std::endl; /* ... */ return f; /* ... */}*/
0

随机文章