本篇文章引用自 http://blog.csdn.net/whb923/article/details/42964441 因恐其内容丢失所以重新编辑到本博文中

在实际的编程中,我们经常使用命令行参数。命令行参数的英文是Command-line parameter或者是argument,下面是wikipedia中关于Command-line parameter的定义与解释,

A command-line argument or parameter is an item of information provided to a program when it is started. A program can have many command-line arguments that identify sources or destinations of information, or that alter the operation of the program.

从以上文字中我们大致可以获取这些信息:

  1. 命令行参数在程序开始运行的时候传递给程序。
  2. 命令行参数作用大致有三方面:
    • 确定信息的来源(比如输入文件来自哪里)
    • 确定信息的终点  (比如输出的内容去向哪里)
    • 切换程序的操作执行 (比如一个sort的program,可以通过parameter调整,选择使用quick sort,merge sort或者其他)

在IDE(Intergrated development environments)中编写程序,有时会因为找不到在哪里设置命令行参数,所以就直接在程序里面设置variable,给定value,这个习惯很不好,给后续的debug带来了困难。所以在此记录常用的一些IDE中如何设置命令行参数

1. Code::Blocks(Version 13.12)

在最上面一行菜单之中找到Project,之后在Project的下拉menu中找到set programs‘ arguments,把命令行参数填入Program arguments之中即可,如Fig.1中所示,sampleCaseInput.in为命令行参数。

Fig.1.  Code::Blocks 填写命令行参数界面

2. Visual Studio(VS2012)

在工程名字上右击鼠标,点击Properties(属性),选择Debugging,右侧有Command Arguments,填入即可,注意空格隔开,如果想让一个argument中包含空格,用双引号(double quotations)引起来即可。如Fig.2中所示

Fig.2.  VS2012中 填写命令行参数界面


3. Eclipse for C/C++ Developer(Version:LunaServiceRelease4.4.1)

在界面最上面一行中找到Run,之后点击,分别有Run Configurations... 和 Debug Configurations..., 看是要直接运行就选择前者,要Debug就选择后者。

点击之后出现如下界面,选择Project的名字,选择Arguments,之后在Program Arguments下面填写上你要使用的Command-line arguments即可。如Fig.3中所示

Fig.3.  Eclipse中 填写命令行参数界面4. Qt Creator(Version:3.0.1)点击左侧Project,在Build&Run中选择Run,之后在Run中可以看到Arguments一栏,讲arguments填入即可,如Fig.4中所示,

Fig.4.  Qt Creator中 填写命令行参数界面


最后给出一段测试Command line arguments的Sample Code(示例代码),

#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;//
//Tips: argc stands for "argument count", argv stands for "argument vector", Aha, it's much more easier for us to remember them
int main(int argc, char *argv[])
{  int numArg = argc;  cout<<"The total number of command arguments is: "<<numArg<<endl;  for(int i = 0;i<numArg;i++)  {  cout<<"Argument # "<<i<<argv[i]<<endl;  }  cin.get();  cin.get();  return 0;  }  

在VS中,Command Arguments设置为:I am "Jeff WANG"(双引号内视为一个参数),输出结果如Fig.5所示:

Fig.5.  VS 运行命令行参数示例程序输出结果

各种编译环境中如何为C++添加命令行参数(Command-line parameter)相关推荐

  1. pytest中pytest_addoption用法 动态添加命令行参数 (钩子函数)

    考虑场景: 我们的自动化用例需要支持在不同测试环境运行,有时候在dev环境运行,有时候在test环境运行: 有时候需要根据某个参数不同的参数值,执行不同的业务逻辑: 上面的场景我们都可以通过" ...

  2. 给Windows 服务添加命令行参数

    1. 首先,给服务的Main方法添加参数,判断如果参数为"-s"则运行服务. static void Main(string[] args) {     // 运行服务     i ...

  3. python获取命令行参数_【整理】Python中如何获得并处理命令行参数

    运行Python脚本时,时常需要从命令行中传递一些参数到Python程序中,但是如何获得相应的传递进来的参数,以及如何解析这些参数,是很多人,包括最开始的我,所遇到的问题. 下面,就对此总结一下: 先 ...

  4. Mac OS X中安装命令行工具Command Line Tools(无Xcode)

    Mac OS X中安装命令行工具Command Line Tools(无Xcode) 简介 喜欢通过终端访问更传统的Unix工具包的Mac用户(大部分是程序员),都会选择安装Xcode IDE的可选命 ...

  5. 3.QT中QCommandLineParser和QCommandLineOption解析命令行参数

     1  新建项目 main.cpp #include <QCoreApplication> #include <QCommandLineParser> #include & ...

  6. Python3中使用argparse模块解析命令行参数

    argparse是Python的一个标准模块,用于解析命令行参数,即解析sys.argv中定义的参数.实现在:https://github.com/python/cpython/blob/main/L ...

  7. VS中添加命令行参数的方法

    在VS中向命令行添加参数,即向main()函数传递参数的方法: 右键单击:添加参数的工程-->属性-->配置属性-->调试,在右侧"命令参数"栏输入要添加的参数, ...

  8. python添加命令行参数

    在某些应用场景中,我们希望通过改变命令行参数值,来执行不同的程序模块 import argparse if __name__ == "__main__":parser = argp ...

  9. 《现代命令行工具指南》10. 管理工具:在隔离环境中安装和运行 Python 命令行工具 - Pipx

    ​好工具就是生产力,这是专栏<现代命令行工具指南>精讲的第 10 个命令行工具,欢迎品鉴. 很多强大的命令行工具都是用 Python 编写的,比如,poetry.trash-cli.bla ...

最新文章

  1. android 美颜 技术点,《Android 美颜类相机开发汇总》第六章 Android OpenGLES 美妆定制实现...
  2. java opp 是什么意思_Java面向对象学习
  3. 【转载】一个男人关心的东西 决定了他的层次
  4. Hadoop伪分布配置与基于Eclipse开发环境搭建
  5. Participate in E-sports【Java大数+二分】
  6. java 流媒体服务器Red5 FQA
  7. iOS常用的忽略警告
  8. 使用Python批量替换指定目录所有文件中的指定文本
  9. 动态规划(四)--最长公共子序列
  10. 001-android eclipse 自动生成的程序
  11. pytorch forward
  12. 电脑常见故障排查思路
  13. http,https,spdy,http2等协议的主要区别详解
  14. 信息论——JS散度(Jensen-Shannon)
  15. 英语学习者的十句经典名言
  16. JAVA:List复制
  17. 10.3、DHCPv6原理与配置
  18. python调用通达信数据_[python]沪深龙虎榜数据导入通达信的自选板块并标注于k线图上...
  19. 1-4 云商城项目工程搭建
  20. 数据的核密度估计及其可视化:Python实现

热门文章

  1. layui表格取消横向滚动条_layui滑动条如何隐藏
  2. vue 实现文本的拖拽_Vue-实现简单拖拽(自定义属性)
  3. .net 有哪些主流的设计模式_「设计模式自习室」门面模式 Facade Pattern
  4. 组合体计算机绘图的实验原理,机械制图及计算机绘图
  5. 求最大公约数(辗转相除)
  6. 解决 unity 2d 中人物碰撞后抖动旋转问题
  7. 深度学习——NMS(非极大抑制)
  8. Tensorflow 循环神经网络-时间序列表示
  9. 面向对象的设计原则-类设计原则
  10. 可用于神经网络的一些matlab函数