argc:参数个数
argv[]:参数内容
注意:
当程序直接运行,没有额外的命令行参数时,argc为1, 因此argc至少为1,argv[]至少长度为1,即argv[0] 存储程序的名称,argv[1] 以后的元素为空
上述两个参数在编译器内部运行无效, 在命令行或终端运行发挥作用
举例:假设需要两个整数参数进行加法操作
#include <iostream>
#include <cstdlib>
int main(int argc, char* argv[]) {
// 判断参数数量是否正确
if (argc != 3) {
std::cerr << "Usage: " << argv[0] << " <num1> <num2>\n";
return 1; // 返回非零值表示程序执行失败
}
// 将命令行参数转换为整数
int num1 = std::atoi(argv[1]);
int num2 = std::atoi(argv[2]);
// 执行加法操作
int result = num1 + num2;
// 输出结果
std::cout << "Number of command line arguments: " << argc << "\n";
for (int i = 0; i < argc; ++i) {
std::cout << "Argument " << i << ": " << argv[i] << "\n";
}
std::cout << "Sum of " << num1 << " and " << num2 << " is: " << result << "\n";
return 0;
}
在编译器内部运行无效:
在命令行必须“路径+程序名+参数”三者全部输入正确才可以正确运行
注意:命令行中输入有小技巧:
技巧1:直接在exe文件夹下的路径里面输入cmd
,再回车,可以直接保证路径正确
技巧2:在路径后面输入文件名的前几个字母后,按tab
,可以自动补全程序名,并添加引号(实测得知引号不添加也不影响正确运行)
因此最终只需要确保自己输入的参数数量与格式正确,不同数据之间使用空格分离
其他:std::cerr说明
与 std::cout(标准输出流)类似,std::cerr 通常用于输出错误信息,而不会受到标准输出流的缓冲影响,这使得错误信息能够尽快显示在终端上。