首页 > 其他分享 >int main(int argc,char* argv[]) 参数详细说明

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

时间:2024-02-02 17:36:25浏览次数:22  
标签:std int argv 参数 命令行 argc

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 通常用于输出错误信息,而不会受到标准输出流的缓冲影响,这使得错误信息能够尽快显示在终端上。

标签:std,int,argv,参数,命令行,argc
From: https://www.cnblogs.com/Yami-Wa/p/18003541

相关文章

  • [LeetCode] 2966. Divide Array Into Arrays With Max Difference
    Youaregivenanintegerarraynumsofsizenandapositiveintegerk.Dividethearrayintooneormorearraysofsize3satisfyingthefollowingconditions:Eachelementofnumsshouldbeinexactlyonearray.Thedifferencebetweenanytwoelementsin......
  • java: Compilation failed: internal java compiler error
    idea启动项目后出现 java:Compilationfailed:internaljavacompilererror错误第一种情况:idea的JDK版本和项目配置的不同。解决方法:查看项目中配置的jdk版本,再查看 idea配置的版本项目配置的:在idea中要查看三个地方的配置 1、File---->Setting------>javacompile......
  • 在 C# 中,`int[]`(数组)和 `List<int>`(列表)都可以用来存储一组整数,但它们有一些重要的区
    在C#中,int[](数组)和List<int>(列表)都可以用来存储一组整数,但它们有一些重要的区别:大小:int[]的大小在创建时就确定了,不能改变。而List<int>的大小是动态的,可以添加或删除元素,大小会自动调整¹。方法:List<int>提供了许多方便的方法,如Add、Remove、Insert等,而int[]没有这些方......
  • 在C#中,你可以在两个嵌套的`for`循环中同时使用变量`i`,但是你需要确保每个循环中的`i`
    在C#中,你可以在两个嵌套的for循环中同时使用变量i,但是你需要确保每个循环中的i都被正确地初始化和更新。这是一个例子:for(inti=0;i<5;i++){for(inti=0;i<5;i++){//在这里执行你的代码}}在这个例子中,外部循环和内部循环都有自己的i变量,......
  • SharePoint Online 启用网站集 App Catalog
    前言最近,有个项目需要使用SharePointFramework解决方案,但是,网站集没有启用对应的AppCatalog功能,所有,就需要用PowerShell来进行启用。正文下面就是对应的命令,我这里用了UseWebLogin,意思是会弹出一个登录的Web界面,从里面输入管理员的账号密码,然后用来执行下面......
  • [Typescript 5] Intro to Variants (keyword in & out)
    Covariance-producer-out-functionreturnposition-samearrowdirectionContravariance-packager-in-functionparamposition-differentarrowdirectionInvariance-bothproducerandpackager-oneinfunctionreturnpositionandanotherinfun......
  • CF920 G. List Of Integers
    \(t\)组询问,求第\(k\)个大于\(x\)且与\(p\)互质的数。看到第\(k\)大这个东西,首先想到二分答案。令当前的二分中点为\(m\),那么如果\([x+1,m]\)中与\(p\)互质的数大于等于\(k\)个,往下缩小二分范围。否则往上缩小二分范围。同时,求\([x+1,m]\)中与\(p\)......
  • Financial - 置信区间 (Confidence Interval,CI)
    总结1.一些前置概念置信区间是谁的置信区间?-->置信区间是参数的置信区间参数又是什么的参数?--> 参数是总体(population)的参数置信区间是怎么算的?-->是通过样本(sample)算的 2.正确理解置信区间95%置信区间,意味着如果你用同样的步骤,去选样本,计算置信区间,那么100次这样的独......
  • BigInt:JavaScript 中的任意精度整数
    BigInts 是JavaScript中的一个新的数字基本(primitive)类型,可以用任意精度表示整数。使用 BigInt 可以安全地存储和操作大整数,即使这个数已经超出了 Number 能够表示的安全整数范围。umber 在JavaScript中被表示为双精度浮点数。这意味着它们的精度有限。......
  • 基于QScintilla项目实现SQL编辑器
    1、下载QScintilla:https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.14.1/QScintilla_src-2.14.1.zip2、解压缩,目录结构如下:QScintilla_src-2.14.1-src组件源代码-qsci组件头文件-scintilla内置的各种语言的词法扫描源代码-example范例(......