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

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

文章目录

  • C++初学者指南-2.输入和输出---命令行参数
    • 1.这是什么&为什么这样?
    • 2.如何在C++中访问
    • 3.转换为std::string、int......
    • 4.字符串到数字的转换函数
    • 5.命令行参数解析库

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.命令行参数解析库

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/33593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

说说 SSL 的错误认识和不足之处

最近明月在学习折腾 LNMP 期间无意中建了一个 Typecho 的博客小站&#xff0c;近一周的折腾下来&#xff0c;收获真的不少&#xff0c;致使兴趣也越来越浓了&#xff0c;在升级 LNMP 的时候捎带手的给这个 Typecho 博客也启用了 SSL。并且开启了 memcached 和 OPcache 优化加速…

C++在VS2022开发Windows窗口程序1:第一个win窗口程序

Windows操作系统是由微软公司开发和维护的一系列图形化操作系统的统称。Windows操作系统主要用于个人计算机、笔记本电脑、平板电脑、服务器等设备上。Windows起源于Microsoft-DOS模拟环境&#xff0c;相比于DOS的指令化模式&#xff0c;Windows采用图形化的模式&#xff0c;因…

OkHttp框架源码深度剖析【Android热门框架分析第一弹】

OkHttp介绍 OkHttp是当下Android使用最频繁的网络请求框架&#xff0c;由Square公司开源。Google在Android4.4以后开始将源码中的HttpURLConnection底层实现替换为OKHttp&#xff0c;同时现在流行的Retrofit框架底层同样是使用OKHttp的。 源码传送门 优点: 支持Http1、Http…

[保姆级教程]uniapp设置字体引入字体格式

文章目录 在 UniApp 中设置和引入自定义字体&#xff08;如 .ttf、.woff、.woff2 等格式&#xff09;通常涉及几个步骤。 准备字体文件&#xff1a; 首先&#xff0c;你需要有字体文件。这些文件通常以 .ttf、.woff 或 .woff2 格式提供。确保有权使用这些字体&#xff0c;并遵守…

代码随想录算法训练营第二十八天

题目&#xff1a;134. 加油站 暴力方法 暴力的方法很明显就是O(n^2)的&#xff0c;遍历每一个加油站为起点的情况&#xff0c;模拟一圈。 如果跑了一圈&#xff0c;中途没有断油&#xff0c;而且最后油量大于等于0&#xff0c;说明这个起点是ok的。 暴力的方法思路比较简单…

SCI一区TOP|电鳗觅食优化算法(EEFO)原理及实现【免费获取Matlab代码】

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年&#xff0c;W Zhao受到自然界中电鳗群体觅食行为启发&#xff0c;提出了电鳗觅食优化算法&#xff08;Electric Eel Foraging Optimization, EEFO&#xff09;。 2.算法原理 2.1算…

SSRF漏洞原理与案例分析

一、什么是SSRF漏洞 SSRF (Server-Side Request Forgery&#xff1a;服务器端请求伪造)是一种由攻击者构造请求&#xff0c;由服务端发起请求的安全漏洞。一般情况下&#xff0c;SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的&#xff0c;所以服务端能请…

Marin说PCB之如何在CST仿真软件中添加三端子的电容模型?--02

小编我在上期文章的结尾给大家留下一个小问题就是&#xff1a;在三端子电容创建模型中间的部分我有说了一句就是&#xff1a;&#xff08;其中有一个creat reference pin 设置我们也默认不勾选&#xff09;&#xff0c;这个勾选不勾选有啥区别呢&#xff1f;这期文章就来给大家…

提高LabVIEW程序可靠性

​提高LabVIEW程序的可靠性是确保系统稳定运行、减少故障和维护成本的重要措施。以下从多个方面详细分析如何提高LabVIEW程序的可靠性 1. 选择合适的架构 1.1 状态机架构 适用情况&#xff1a; 多状态、多步骤操作。 具体例子&#xff1a;在一个自动测试系统中&#xff0c;…

[汇总] Docker容器详解 Macvlan 创建不同容器独立跑仿真(持续更新中)

一、概念介绍 1.1 什么是macvlan macvlan是一种网卡虚拟化技术&#xff0c;能够将一张网卡&#xff08;Network Interface Card, NIC&#xff09;虚拟出多张网卡&#xff0c;这意味着每个虚拟网卡都能拥有独立的MAC地址和IP地址&#xff0c;从而在系统层面表现为完全独立的网络…

mybatisplus字段注入MetaObjectHandler扫描不到我的指定填充字段

使用mybatisplus自带的字段填充策略注入值的时候&#xff0c;发现并没有扫描到我的指定字段。 1. 初始代码 Component Slf4j public class MyMetaObjectHandler implements MetaObjectHandler {private static final String createByFiled "createBy";private stati…

Python数据可视化---pygal模块(基础篇)

pygal模块 安装pygal模块 pygal模块的安装非常简单&#xff0c;只需输入一行pip命令即可 pip install pygal安装完成&#xff1a; pygal模块介绍 pygal官网地址 pygal是Python的第三方库&#xff0c;他的主要功能就是数据可视化&#xff0c;即将数字转化成图表的形式来呈…

情绪管理篇:让七情自然流露,不过分压抑也不掺杂极端的想法即可来去自如

情绪管理篇&#xff1a; 人有七情&#xff0c;本属常理&#xff0c;该哭的时候哭、该笑的时候笑、该怒的时候怒、该忧的时候忧 学习圣贤之学&#xff0c;并非让我们像木头人一样&#xff0c;枯木死灰&#xff0c;而要让自己不要被七情所缠缚、被七情所乱心&#xff0c;我们的喜…

ONLYOFFICE 文档 8.1 现已发布:功能全面的 PDF 编辑器、幻灯片版式等等

0、前言 在技术的快速发展和工作方式的持续演进下&#xff0c;现代办公软件正变得越来越强大和多样化。ONLYOFFICE&#xff0c;作为市场上备受瞩目的一体化办公解决方案&#xff0c;以其全面的文档编辑、表格处理和演示制作功能&#xff0c;满足了用户在不同办公场景下的需求。…

Hi3861 OpenHarmony嵌入式应用入门--LiteOS Mutex

CMSIS 2.0接口中的Mutex&#xff08;互斥锁&#xff09;是用于在多线程环境中保护共享资源的访问机制。Mutex&#xff08;互斥锁&#xff09;是一种特殊的信号量&#xff0c;用于确保同一时间只有一个线程可以访问特定的共享资源。 在嵌入式系统或多线程应用中&#xff0c;当多…

Mysql索引底层数据结构——Java全栈知识(28)

Mysql索引底层数据结构 1、什么是索引 索引在项目中还是比较常见的&#xff0c;它是帮助MySQL高效获取数据的数据结构&#xff0c;主要是用来提高数据检索的效率&#xff0c;降低数据库的IO成本&#xff0c;同时通过索引列对数据进行排序&#xff0c;降低数据排序的成本&…

arduino按钮

Arduino - Button Arduino - 按钮 参考&#xff1a; ezButton-按钮库从按钮开关看上拉pull-up电阻、下拉电阻按键的防抖动处理 The button is also called pushbutton, tactile button or momentary switch. It is a basic component and widely used in many Arduino projec…

【gif制作】Win下视频生成GIF;工具GifCam单色保存,灰度保存,调速,编辑删除帧添加文本

下载地址 https://blog.bahraniapps.com/gifcam/#download https://gifcam.en.softonic.com/ 界面功能 GifCam 简洁、小巧的 gif 录制软件。GifCam就像照相机一样位于所有窗口的顶部&#xff0c;可以移动它并调整其大小录屏所需的区域。 如图&#xff1a;空闲状态下窗口内…

给XPTABLE添加右键菜单(XPTable控件使用说明十一)

用户右键点击TABLE控件&#xff0c;弹出一个菜单&#xff0c;选择菜单对应到相关的操作 1、增加一个contextMenuStrip6控件&#xff0c;在里面增加2个ITEM&#xff0c;名称用中文命名 2、给两个ITEM添加点击后的事件 3、在XPTABLE上增加点击事件&#xff1a; 4、当用户右键点击…

vantUI upload 上传组件v-model绑定问题

直接绑定一个数组会有问题,删除失效/上传不了等等 解决在v-model绑定的数组外包一个对象即可