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