int main(int argc, char* argv[])
背景
封装一个算法生成一个.exe可执行文件,他人通过在命令行调用可执行文件输入参数来实现对算法的调用,此时在命令行输入的参数如何给到.exe?在大学最开始接触C的时候可以发现我们写一个简单的输入输出代码时,有的main函数是有参数的,有的是没有参数的,但即便是有参数只写一个输出hello world 也没并没有用到main函数中的参数即
int argc, char* argv[]
使用
第二个参数 char* argv[] 是一个char类型的指针数组,里面存了多个字符串,如果学过Qt的话他类似于一个QStringList,第一个参数就是这个数组的大小,在命令行输入的内容就在这个数组中,因为我们要调用exe可执行程序所以其中argv[0]的值是path/XX.exe其中path是XX.exe所在的路径,之后输入的每隔一个空格算一个参数依次往后存到这个argv数组中
代码
#include <stdio.h>
#include <iostream>
int main(int argc,char* argv[])
{
if (argc < 2)
{
std::cout << "Please enter the correct parama" << std::endl;
return false;
}
for (int i = 0; i < argc; i++)
{
std::cout << argv[i] << std::endl;
}
return 0;
}
效果
在生成的exe路径打开powershell或者命令行进入到该路径下输入.\Project1.exe 1 如下图所示
可以看出输出结果符合代码逻辑。