int main(int argc,char* argv[]) 参数详细说明

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;
}

在编译器内部运行无效:
image
在命令行必须“路径+程序名+参数”三者全部输入正确才可以正确运行
image
注意:命令行中输入有小技巧:
技巧1:直接在exe文件夹下的路径里面输入cmd,再回车,可以直接保证路径正确
image
技巧2:在路径后面输入文件名的前几个字母后,按tab,可以自动补全程序名,并添加引号(实测得知引号不添加也不影响正确运行)

因此最终只需要确保自己输入的参数数量与格式正确,不同数据之间使用空格分离

其他:std::cerr说明
与 std::cout(标准输出流)类似,std::cerr 通常用于输出错误信息,而不会受到标准输出流的缓冲影响,这使得错误信息能够尽快显示在终端上。

posted @ 2024-02-02 17:21  小阮向阳  阅读(272)  评论(0编辑  收藏  举报