6.3 命令行参数
程序可以从命令行接收参数。argc 表示参数个数,argv 保存这些参数字符串。
cpp
#include <iostream>
int main(int argc, char* argv[]) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " file.txt" << std::endl;
return 1;
}
std::cout << "processing " << argv[1] << std::endl;
return 0;
}argv[0] 通常是程序名,argv[1] 是第一个用户参数,以此类推。所有参数都是字符串,需要数字时可以用 <cstdlib> 中的 std::atoi() 或 <string> 中的 std::stoi() 转换。
cpp
int times = std::atoi(argv[1]); // "3" -> 3错误信息建议写到 stderr,普通结果写到 stdout。在 C++ 中,std::cerr 写到 stderr,std::cout 写到 stdout。这样用户可以把正常输出重定向到文件,同时仍然在终端看到错误。
bash
./greet Ada > out.txt正在加载交互实验...
正在加载概念检查...
正在加载本节练习...