C语言命令行参数的使用详解

之前曾经使用过很多次c语言的命令行参数了,但是总是每次使用的时候都不太确定,需要重新查资料,这次来个总结。c语言的命令行参数非常简单,只需要一个简单的例子就可以说明:

#include <stdio.h>
void main(int argc,char** argv)
{
        printf("%d\n",argc);
        printf("%s\n",argv[0]);
        printf("%s\n",argv[1]);
        printf("%s\n",argv[2]);
}

在上面的例子中,我们给main函数传递两个参数,argc和argv。argc是int类型的,它表示的是命令行参数的个数。不许要用户传递,它会根据用户从命令行输入的参数个数,自动确定。argv是char**类型的,它的作用是存储用户从命令行传递进来的参数。它的第一个成员是用户运行的程序名字。

对于上面的例子,我们将其保存为test.c,用gcc编译生成目标文件为test,测试如下:

(1)我们值在命令行下直接运行程序,没有传递其它任何参数:

./test

运行结果如下:

第一个输出的是argc,因为我们只输入了./test,所以argc为1,即只有一个命令行参数。后面输出的第一个命令行参数也是./test。接着程序就出错了,因为后面已经没有第二个和第三个参数了,在写实际的应用时,应注意对这一部分进行容错处理。

(2)我们在命令行下输入:

./test hello world

可以看到argc为3,第一个参数为./test,第二个参数为hello,第三个参数为world。

(3)我们继续输入:

./test hello world hello world

可以看到这时,argc变为5,argv指数出了前面三个参数,当然还可以把后面的两个参数也进行输出。

如果命令行中传递的一个参数包括空格,就需要用用“ ”将参数扩起来例如

./test "hello world" "hello world"

我们将hello world整体当作一个参数传递,就需要使用“hello  world”。

需要注意的是argv的类型可以是char ** argv,char argv[ ][ ],char* argv[ ]。

到此这篇关于C语言命令行参数的使用详解的文章就介绍到这了,更多相关C语言命令行参数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • linux下c语言中隐藏进程命令行参数(例如输入密码等高危操作)

    前言 启动程序很多时候用命令行参数可以很方便,做到简化一些配置,但是输入用户名密码等操作,如果通过进程查看工具直接看到密码就太不安全了. 因此很有必要研究如何隐藏命令行参数中的某些字段,当然做成配置文件也是极好的,但是无疑给运行程序增加额外操作.编辑保存配置文件也会费点事. 我结合网上找到的一些方案,以及自己总结一个方案,记下笔记. 复写argv参数 该方案只在Linux下的C语言中验证成功,因为window下都是win32api获取命令行参数,但是没有设置这个,估计window不支持这种骚操作

  • 关于C语言和命令行之间的交互问题

    在Windows操作系统中,后缀为.exe的文件都是可执行文件..exe是英文单词executable的缩写,意思是可执行的.凡是可执行的文件都是二进制的文件,计算机也只能识别二进制的文件. 后缀为.exe的文件是由C语言的源文件.c或C++的源文件.cpp编译而来. 在Windows操作系统中,凡是.exe的文件,都可以作为一条命令,在命令行中来执行.例如:在我的电脑D盘cPro文件夹中就有很多编译好的.exe可执行文件: Win + R 键输入cmd,进入命令行: 然后输入命令进入到D:\c

  • C语言实现贪吃蛇游戏(命令行)

    这是一个纯C语言写的贪吃蛇游戏,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<time.h> #include<conio.h> #define SNAKE_LENGTH 100//定义蛇的最大长度 #define SCREEN_WIDETH 80 #define SCREEN_HEIGHT 30 //定义每一节蛇的坐标 struct

  • C语言命令行参数的使用详解

    之前曾经使用过很多次c语言的命令行参数了,但是总是每次使用的时候都不太确定,需要重新查资料,这次来个总结.c语言的命令行参数非常简单,只需要一个简单的例子就可以说明: #include <stdio.h> void main(int argc,char** argv) { printf("%d\n",argc); printf("%s\n",argv[0]); printf("%s\n",argv[1]); printf("

  • php根据命令行参数生成配置文件详解

    像npm, composer等工具,在开始使用的使用,都需要初始化项目,生成一个项目的配置文件.这种功能的原理是怎么实现的呢? 比如: D:\>npm init --yes Wrote to D:\package.json: { "name": "", "version": "1.0.0", "description": "", "main": "in

  • php命令行模式代码实例详解

    php全集行模式,即php-cli,官方文档中称为: CLI SAPI(Server Application Programming Interface,服务端应用编程端口).听着挺复杂.其实是因为php原本为服务器端的脚本语言,所以引申出这个叫法. 与服务端模式的不同 服务端模式主要有两种工作方式: 作为web server的模式方式或作为一个cgi可执行程序. 前者,比如作为apach中的一个模块(如:php5apache2.dll); 后者作为可执行程序,如php-cig. 现在的替代者为

  • Linux终端命令行的常用快捷键详解

    history 显示命令历史列表 ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !?string? 执行含有string字符串的最新命令 Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令 Ctrl+s 与Ctrl+r类似,只是正向检索 Alt+< 历史列表第一项 Alt+> 历史列表最后一项 Ctrl+f 光标向前移动一个字符,相当与-> Ct

  • php命令行写shell实例详解

    php 可以像java perl python 那样运行,今天发现如果我早早知道这个,或许我不会去学习java 和 python 当年学java不过为了一个程序放在服务器上,不停的跑啊跑,原来 php 也可以. php -h Usage: php [options] [-f] <file> [--] [args...] php [options] -r <code> [--] [args...] php [options] [-B <begin_code>] -R &l

  • Python命令行解析器argparse详解

    目录 第1章 argparse简介 1.1 解析 1.2 argparse定义三步骤 1.3  代码示例 第2章 参数详解 2.1 创建一个命令行解析器对象:ArgumentParser() 2.2 为命令行添加参数: add_argument() 方法 2.3 解析命令行的参数:parse_args() 2.4 命令行参数的输入 2.5 命令行参数的使用 总结 第1章 argparse简介 1.1 解析 argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块,argp

  • MySQL 设计和命令行模式下建立详解

    MySQL 设计和命令行模式下建立详解 系列文章: MySQL 设计和命令行模式下建立详解 C++利用MySQL API连接和操作数据库实例详解 1.数据表的设计 MySQL数据库管理系统(DBMS)中,包含的MySQL中定义数据字段的类型对你数据库的优化是非常重要的.MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 下面以大学熟悉的学生选课管理系统中用到的数据库为例,来设计相应的数据表.主要有三张表:学生表,课程表和选课表. 学生表设计: 字段(Field) 类

  • springboot命令行启动的方法详解

    springboot命令行启动 创建的springboot项目想看看效果,不想打开idea等开发工具,使用直接使用命令行启动. maven的命令启动 需要将 jdk的bin目录和maven的bin目录添加到环境变量path中,若是没有,mvn就要用在maven的bin环境中的全路径 若是没有添加环境变量 mvn就要是E:\software\apache-maven-3.3.9\bin\mvn(安装路径\bin\mvn) java就要是C:\software\jdk\bin\java.exe(安装

  • 用什么库写 Python 命令行程序(示例代码详解)

    一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse . docopt . click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变.本文作为本次旅程的终点,希望从一个更高的视角对这些库进行横向对比,总结它们的异同点和使用场景,以期在应对不同场景时能够分析利弊,选择合适的库为己所用. 本系列文章默认使用 Python 3 作为解释器进行讲解.若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 二.设计理念 在讨论

  • Vue命令行工具Vue-CLI图文详解(推荐!)

    目录 阐述 vue全家桶 vue-cli Vue CLI 的安装 ① 默认安装 vue/cli 脚手架 3 ② 默认安装失败,解决mode版本问题 ③ nvm下载太慢问题解决 ④ 安装 Node ^12.0.0 ⑤ 从新安装 VueCli 脚手架 3 ④ 拉取 2.x 模板 (旧版本) ⑤ 安装vue指定版本 ⑥ 博主node版本 初始化项目 ① vue init命令讲解 ② 项目初始化 ③ 目录结构详解 ④ 运行项目 node 安装适合小白 1 去node官网下载 2 下载完成后双击安装包,跳

随机推荐