1、基本用法
argc
(argument count)表示命令行参数的个数(包括程序名本身)。argv
(argument vector) 是一个字符指针数组,保存所有参数的字符串(C风格字符串)。
int main(int argc, char *argv[])
或
int main(int argc, char **argv)
#include<iostream>
using namespace std;
int main(int argc, char *argv[]) {
std::cout << "参数个数: " << argc << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << "参数 " << i << ": " << argv[i] << std::endl;
}
return 0;
}
注意:argv[0]
通常是程序本身的名字。所有参数都是字符串类型,需要用 std::stoi
, std::stod
等函数进行转换。argv[argc]
是一个空指针 nullptr
(但不建议访问它)。
2、读取命令行输入文件或输出路径
用户运行程序时传入文件路径或名称作为参数。
#include<iostream>
using namespace std;
int main(int argc, char *argv[]) {
if (argc != 3) {
std::cerr << "用法: " << argv[0] << " <输入文件> <输出文件>\n";
return 1;
}
std::string inputFile = argv[1];
std::string outputFile = argv[2];
// 处理文件...
}
3、设置程序参数(如模式、选项、开关)
用户通过命令行传递不同选项影响程序行为,比如 --verbose
或 --help
。
#include<iostream>
using namespace std;
int main(int argc, char *argv[]) {
std::cout << "argc = " << argc
<< "\nargv[0] = " << argv[0];
for (int i = 1; i < argc; ++i) {
std::string arg = argv[i];
std::cout << arg;
if (arg == "--help") {
std::cout << "帮助信息:用法...\n";
} else if (arg == "--mode" && i + 1 < argc) {
std::string mode = argv[++i];
std::cout << "压缩模式:" << mode << std::endl;
}
}
}