本文主要介绍在 C++ 编程语言中,接收用户输入参数的具体方法。

接收用户输入参数的程序,在 Linux 操作系统中很常见,一些常见的命令,都会需要接收用户输入的参数,并根据这些参数进行不同的操作。

1 示例程序

在这里展示一个的示例程序,该程序接收输入的三个参数,并将这三个参数打印出来。

示例程序的代码(rec_user_arg.cpp)内容如下:

#include <iostream>
#include <string.h>using namespace std;void ShowUsage()
{cout << "Usage   : rec_user_arg <--name=your name> [Option]" << endl;cout << "Options :" << endl;cout << " --name=your name                  Your name, this option MUST be given." << endl;cout << " --occupation=your occupation      Your occupation, such as paladin." << endl;cout << " --camp=your camp                  Your camp, such as alliance." << endl;cout << " --help                            Print this help." << endl;return;
}int main(int argc, char *argv[])
{// 如果用户没有输入参数,则提示错误信息并退出if (argc < 2){cout << "No arguments, you MUST give an argument at least!" << endl;ShowUsage();return -1;}int nOptionIndex = 1;string strName;string strOccupation;string strCamp;while (nOptionIndex < argc){// 获取用户姓名if (strncmp(argv[nOptionIndex], "--name=", 7) == 0){strName = &argv[nOptionIndex][7];}// 获取用户职业else if (strncmp(argv[nOptionIndex], "--occupation=", 13) == 0){strOccupation = &argv[nOptionIndex][13];}// 获取用户阵营else if (strncmp(argv[nOptionIndex], "--camp=", 7) == 0){strCamp = &argv[nOptionIndex][7];}// 显示帮助信息else if (strncmp(argv[nOptionIndex], "--help", 6) == 0){ShowUsage();return 0;}else{cout << "Options '" << argv[nOptionIndex] << "' not valid. Run '" << argv[0] << "' for details." << endl;return -1;}nOptionIndex++;}cout << "Name is: " << strName << endl;cout << "Occupation is: " << strOccupation << endl;cout << "Camp is: " << strCamp << endl;return 0;
}

编译并执行上述代码,结果如下:

1. 用户没有输入参数时:

2. 用户输入了两个参数时:

3. 用户输入了错误的选项时:

C++编程语言中接收用户输入参数的方法相关推荐

  1. linux脚本外输入参数,shell 脚本中关于用户输入参数的处理

    1.命令行参数 向shell脚本传递数据的最基本方式是使用命令行参数. (1) 读取参数 读取输入的参数的变量为位置参数,位置参数通过标准数字表示, 其中$0为程序名称,$1为第一个参数,$2为第二个 ...

  2. PHP-企业微信二次开发-接收用户输入消息内容并响应相关业务逻辑

    企业微信接收用户输入消息内容并响应 前面一节说明了企业微信设置API接收,服务器回调配置的一些说明.这一节我们接着后面的内容来讲下在企业微信中,如何通过应用,接收用户消息. 业务逻辑:企业微信向回调地 ...

  3. 深度解析Go中的用户输入获取(fmt.Scan fmt.Scanln fmt.Scanf),含多项测试及源码解读

    Go中的标准输入处理及测试 前言 fmt.Scan, fmt.Scanln, 和 fmt.Scanf 是 Go 语言标准库中用于读取用户输入的函数.在使用过程中,我发现了他们不符合预期的表现,于是进行 ...

  4. iOS 11开发教程(十七)iOS11应用视图之使用按钮接收用户输入

    iOS 11开发教程(十七)iOS11应用视图之使用按钮接收用户输入 在iOS中提供了很多的控件以及视图来丰富用户界面,对于这些视图以及控件我们在上一章中做了简单的介绍.本章我们将详细讲解这些视图. ...

  5. ​Xamarin iOS教程之使用按钮接接收用户输入

    ​Xamarin iOS教程之使用按钮接接收用户输入 Xamarin iOS使用按钮接接收用户输入 按钮是用户交互的最基础控件.即使是在iPhone或者iPad中,用户使用最多操作也是通过触摸实现点击 ...

  6. CMD命令行接收用户输入信息

    CMD命令行接收用户输入信息 可以把下面的代码块Copy到一个以bat为后缀的文件中,双击就可以看到效果 ********************************************** ...

  7. LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案。 1:采用句子相似度的方式。根据问题的字面相似度选择相似度最

    LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案. 1:采用句子相似度的方式.根据问题的字面相似度选择相似度最 ...

  8. 前端工具-Yeoman模板 + 接收用户输入

    开门见山 在前端工具-自定义generator文章中,介绍了如何自定义generator模块,以及生成对应的文件,如果是一个接一个写文件的话比较费力,好在我们有模板语法通过模板语法,大大提高了效率 模 ...

  9. 接收用户输入的一个5位数,求个位数、十位数、百位数、千位数、万位数的和

    题目: 接收用户输入的一个5位数,求个位数.十位数.百位数.千位数.万位数的和. /常规方法/// 12345 您输入的数万位是:1,千位是:2,百位是:3,十位是:4,个位是:5. 各位的和为:15 ...

  10. 编写程序实现比萨制作。需求说明编写程序,接收用户输入的信息,选择需要制作的比萨。可供选择的比萨有:培根比萨和海鲜比萨。

    面向对象继承封装多态经典案例: 编写程序实现比萨制作.需求说明编写程序,接收用户输入的信息,选择需要制作的比萨.可供选择的比萨有:培根比萨和海鲜比萨. 实现思路及关键代码 1)分析培根比萨和海鲜比萨 ...

最新文章

  1. 4行代码,让app自动化框架支持 webview 混合应用操作
  2. oracle 分列,SQL 问题 如何分列
  3. 7.MATLAB变量——矩阵操作二
  4. elk 搜索 语法_ELK从入门到还未精通(二)——ElasticSearch上篇
  5. C++ Opengl 变形实例源码
  6. iOS常用的存储方式介绍
  7. 微软张宏江出任金山CEO 求伯君正式退休
  8. 倪光南院士:云计算发展须和云安全同步推进
  9. 云智慧获 D 轮数 2500 万美元投资:全力推动智能运维落地
  10. Random Forests预测森林植被类型
  11. 来吧,我和你聊聊操作系统
  12. Week 1——Machine learning by Pro.Andrew Ng (cousera)——notebook
  13. android7.1刷supersu,安卓怎么刷SuperSU 安卓系统刷入超级授权SuperSU Pro方法
  14. 谷歌表格_如何计算Google表格中的空白或空单元格
  15. vue+vue-ueditor-wrap+秀米
  16. MSSQLSERVER 2019修改数据库文件存放路径的简单实现
  17. oracle 建分区索引_Oracle的分区表和Local索引创建与维护
  18. 会声会影2020秘钥视频编辑制作使用教程
  19. NEO4J实战之《阿丽塔战斗天使》
  20. Windows下安装Redis教程

热门文章

  1. event.keyCode 事件属性
  2. 那些开源程序中让人叹为观止的代码 - 1 浏览器特性判断
  3. DrawText()
  4. javascript获取对象高度和宽度(整理)
  5. SQL DATEADD函数
  6. jQuery创建Dom元素
  7. Net下的AppDomain编程 [摘录]
  8. Ubuntu使用零碎记录
  9. maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)
  10. 17.看板方法——瓶颈和非即时可用资源笔记