argc参数和argv参数简述

初次见面,是计算机二级题里面

int main(int argc,char *argv)

听了一些别人的解释,有点懵懂:
argc是命令行中的参数个数,argv是一个指向char的指针数组,argv[0]指向存储第一个命令行参数的第一个字符,也就是说,如果你用输出语句对argv[0]进行输出,就可以得到这个指针的整个字符串。

cout<<argv[0]<<endl;

后来学习了关于命令行的命令使用呢,就对这样的参数有所明了。
相信大家用过cmd命令诸如:

cd C:\Windows

那么上面的命令是怎么实现的呢?cd其实算是个程序,它根据你后面的输入进行目录的查找并进行切换,结合上面的对两个参数(argc 和argv)的介绍,cd就是在命令行里的第一个参数,对应argv[0],后面"C:\Windows"就是第二个参数,对应argv[1],这两个就是两个字符串,这样的命令得出的argc值就是2。根据这两个参数的性质我们可以写一个简单的打招呼程序:程序名 (你要的输出名1) (你要的输出名2)…
得到的结果是:
Hello,输出名1!
Hello,输出名2!

Done.
程序如下:

#include <iostream>
#include <cstdlib> //for exit()
using namespace std;
int main(int argc, char *argv[])
{
    if (argc == 1)
    {
        cout << "Usage: " << argv[0] << " name\n";
        long wait = 0;
        while (wait < 1000000000)
            wait++; //结束得慢一点
        exit(EXIT_FAILURE);
    }//如果输入只有程序名,就会输出上面的语句强调用法,然后关闭程序
    if (argc > 1)
    {
        int i;
        for (i = 1; i < argc; i++)
            cout << "Hello," << argv[i] << "!\n";
    }
    cout << "Done.\n";
    system("pause");
    return 0;
}

上面的程序运行就是模拟命令行参数那种运行,你可以在编译软件的终端(如vscode的终端)输入命令

.\test Jack H Jane

输出就是这样的

Hello,Jack!
Hello,H!
Hello,Jane!
Done.

如果你想要省去前面的./呢,可以把程序放进你的系统变量path里,这样就可以类似cd命令那样,直接写程序名调用程序。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值