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; /* ... */}*/
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/477737.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除