📜  C C++中的命令行参数(1)

📅  最后修改于: 2023-12-03 14:39:37.621000             🧑  作者: Mango

C/C++中的命令行参数

当我们在终端中输入可执行文件名后面跟着的一些字符串(例如./my_program hello world),这些字符串就成为了命令行参数。C和C++中,我们可以通过argcargv来读取这些参数。

argc和argv

argc是一个整数类型的变量,表示命令行中参数的个数,包括可执行文件本身。即argc的值至少是1。

argv是一个指向指针数组的指针,它保存了命令行参数的字符串,其中argv[0]是指向可执行文件名的指针,argv[1]指向第一个参数的指针,以此类推。

int main(int argc, char* argv[]) {
    // ...
}

上面是主函数的定义方式,其中的argcargv就是命令行参数传递进来的。也可以写成如下形式:

int main(int argc, char** argv) {
    // ...
}

这两种定义方式是等价的。

示例程序

下面是一个简单的示例程序,它输出命令行参数的个数和内容。

#include <iostream>

int main(int argc, char* argv[]) {
    std::cout << "argc = " << argc << std::endl;
    for (int i = 0; i < argc; ++i) {
        std::cout << "argv[" << i << "] = " << argv[i] << std::endl;
    }
    return 0;
}

当我们将可执行文件命名为my_program后,运行./my_program hello world,输出如下:

argc = 3
argv[0] = ./my_program
argv[1] = hello
argv[2] = world
小结

命令行参数在C和C++中非常方便,可以以字符串的形式传递额外信息给程序。argcargv可以读取这些信息,并进行相应处理。在程序中合理地使用命令行参数可以显著提高程序的灵活性和实用性。