C++初学者指南-2.输入和输出---命令行参数

C++初学者指南-2.输入和输出—命令行参数

1.这是什么&为什么这样?

  • 程序调用后面的用空格分隔的字符串
  • 用于在程序启动时向程序发送信息
  • 特别适用于自动化/脚本编写
$ ls
$ rm *.txt
$ find -name *.jpg
$ g++ -o out xy.cpp

2.如何在C++中访问

main.cpp

#include <iostream>
int main (int const argc, char const*const* argv) {
  for (int i = 0; i < argc; ++i) {
    std::cout << argv[i] << '\n';
  }
}

运行上面代码
在Linux下编译和运行

$ g++ -o exe main.cpp    // 编译程序为exe文件
$ ./exe 12 abc -z 3      // 带参数运行'exe'
./exe                    // 程序调用本身
12                       // 用户第一个参数
abc                      // 用户第二个参数
-z                       // 第三个
3                        // 第四个
  • 名称 argc 和 argv 只是一个约定。
  • argv的每个元素是一个C风格字符串:一个char类型的C风格数组。
  • argv 本身就是 C 风格字符串的组成的数组
  • argv[0] 包含程序调用(取决于平台)

3.转换为std::string、int…

#include <iostream>
int main (int const argc, char const*const* argv) {
  if (argc < 3) {
    std::cerr << "Usage: " << argv[0] << " <word> <times>\\n";
    return EXIT_FAILURE;
  }
  auto word  = std::string(argv[1]);
  int  times = atoi(argv[2]);
  for (int i = 0; i < times; ++i) {
    std::cout << word << ' ';
  }
  std::cout << '\n';
}

运行上面代码
运行:

$ ./say                       // 没有参数运行
Usage: ./say <word> <times>   // 参数太少 ⇒ 输出程序的用法信息
$ ./say ho! 3                 // 带参数运行
ho! ho! ho!                   // 程序输出

4.字符串到数字的转换函数

#include <cstdlib> (C语言字符串转换函数)
int    atoi  (char const*);
long   atoll (char const*);
double atof  (char const*);
#include <string> (C++11标准之后的字符串转换函数)
int    stoi (std::string const&);
long   stol (std::string const&);
float  stof (std::string const&);
double stod (std::string const&);

5.命令行参数解析库

这个和编程知识无关,就是简单介绍了一些命令行参数的解析库,有需要的可自行用翻译功能自行翻译。
在这里插入图片描述
附上原文链接
如果文章对您有用,请随手点个赞,谢谢!^_^

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值