Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法

news2024/9/27 17:36:59

Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法

文章目录

  • Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法
    • 前言
    • 一、Python中`sys.argv[]`的用法
    • 二、Cpp中`int main(int argc char *argv[])`的用法
    • Reference

前言

最近在学习ROS,在服务通信中老是遇到这两种用法,在以前系统学习Python和Cpp的时候,遗忘了这一知识点,现在进行补票。


一、Python中sys.argv[]的用法

1、用法
🚀 sys.argv 的作用是获取运行python文件的时候命令行参数,且以list形式存储参数,其中第一个参数sys.argv[0]为python文件的存放路径(是相对路径),后续参数如sys.argv[1]为打包的命令行参数。

2、示例
举一个简单的示例,大家应该就能明白,这个脚本文件的文件名为demo1.py

# 一个简单的示例
import sys

# 程序主入口
if __name__ == "__main__":
    print("----程序启动----")
    print("当前程序的路径为:", sys.argv[0])
    print("所有的参数类型为:",list(map(type,sys.argv)))
    for i in range(1,len(sys.argv)):
        print("其余的打包命令行参数为:", sys.argv[i])
    print("----程序结束----")

在命令行中启动该脚本文件

python ./demo1.py 10 20 30

运行的结果如下

解释如下:

即我们将文件的相对路径.\demo1.py打包进入了sys.argv[0],然后将剩余的参数10,20,30分别打包进了sys.argv[1],sys.argv[2],sys.argv[3]


二、Cpp中int main(int argc char *argv[])的用法

1、用法
🚀 argc用来统计你运行程序时送给main函数的命令行参数的个数,而argv同样是存放获取运行Cpp文件的时候命令行参数,其中第一个参数argv[0]为Cpp文件的存放路径(是相对路径),后续参数如argv[1]为打包的命令行参数。

2、示例
举一个简单的示例,这个脚本文件的名字为demo2.cpp

//一个简单的示例
#include <stdio.h>


int main(int argc, char* argv[])
{
	printf("---程序开始---\n");
	printf("当前打包的个数为:%d\n", argc);
	int i;
	for (i = 0; i < argc; i++)
	{
		printf("第%d个参数为:%s\n", i, argv[i]);
	}
	printf("---程序结束---\n");
}

运行Cpp脚本文件和Python脚本文件还不太一样,Cpp需要编译,不可以直接运行,我们使用以下语句可以编译Cpp脚本文件.cpp并且生成可执行文件.exe

首先编译cpp文件,生成可执行文件exe,语法是

gcc -o 输出可执行文件名.exe 脚本文件.cpp(路径)
gcc -o demo2.exe demo1.cpp

再使用

ls

查看是否编译成功

然后使用可执行文件.exe进行执行,

.\demo2.exe 10 20 30 hello world!

效果如下:


Reference

https://blog.csdn.net/lyb3b3b/article/details/81221396?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-81221396-blog-74909089.pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.1&utm_relevant_index=3

https://blog.csdn.net/weixin_42996227/article/details/126779072?ops_request_misc=&request_id=&biz_id=102&utm_term=int%20main(argc,%20char%20*argv%5B%5D)%E7%9A%84%E7%94%A8&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-126779072.142v73wechat,201v4add_ask,239v2insert_chatgpt&spm=1018.2226.3001.4187

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

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

相关文章

前端纯函数和副作用概念,且在react上的体现详解

什么是纯函数 纯函数是这样一种函数&#xff0c;即相同的输入&#xff0c;永远会得到相同的输出的函数&#xff0c;而且没有任何可观察的副作用。 什么是副作用 副作用是在计算结果的过程中&#xff0c;系统状态的一种变化&#xff0c;或者与外部世界进行的可观察的交互。 个…

CAN工具 - ValueCAN - 基础介绍(续)

VSpy3&#xff08;Vehicle Spy 3的简写&#xff09;&#xff0c;作为一个常用的车载总线仿真工具&#xff0c;在车载网络领域也是有非常大的市场&#xff0c;前面也简单介绍过一些简单的功能&#xff0c;今天就再次介绍一些。什么是VSpy3&#xff1f;VSpy3是美国英特佩斯公司下…

测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机

首先说明的是&#xff0c;遇到这样的测试题目&#xff0c;首先应该反问面试官&#xff0c;需求是什么样的&#xff0c;比如是测什么样的杯子。 因为设计测试用例的规则应该是根据需求分析文档设计用例&#xff0c;客户需求什么&#xff0c;就测试什么。但是在没有需求分析文档…

如何准备pmp考试?(含备考资料)

一、复习计划的制定根据之前在培训班共同奋斗的小伙伴学习时间统计&#xff0c;平均每天的学习时间是在 3-4 小时左右&#xff0c;基本上是白天 1 小时晚上 3 小时左右&#xff0c;通过率基本都在 80% 左右&#xff0c;最好的时候能达到 90%&#xff0c;大概的学习安排如下&…

【科研】【ReID】科研论文怎么写?八股文写作思路

拿 Densely Semantically Aligned Person Re-Identification 这篇文章举例。 本文写作非常好&#xff0c;写的很有逻辑&#xff0c;很标准。科研论文虽然是八股文&#xff0c;但是能经历了百年的发展而来&#xff0c;有它的合理性。我把它Introduction的写作思路跟一下&#x…

buuctf13(perl脚本GET open命令漏洞redis主从复制xssssti关键字过滤绕过csrf)

目录 <1> [HITCON 2017]SSRFme(perl脚本GET open命令漏洞) <2> [网鼎杯 2020 玄武组]SSRFMe(SSRF结合redis主从复制RCE) <3> [GWCTF 2019]mypassword(xss获取保存的cookie内容) <4> [GWCTF 2019]你的名字(ssti {{和关键字绕过) (1) {{ 和 }} 过滤绕…

C++ STL:空间配置器

文章目录1、allocator 接口层1.1、接口层源码1.2、定位 new 表达式1.3、实例2、allocator 实现层2.1、一级空间配置器2.2、二级空间配置器allocatedeallocate源码流程分析3、allocator 问题背景&#xff1a;频繁使用 malloc 分配内存的造成的问题&#xff1a; 系统调用&#x…

js红宝书学习笔记(1-6章)

就按照原书中写的章节顺序记笔记了&#xff0c; 还有可能我学过js一段时间了&#xff0c;可能有些对于新手的细节会忽略&#xff0c;但是会尽量写全的~ 1.第一章 什么是JavaScript 1.1讲了一些历史&#xff0c;所以我们从1.2开始看 1.2 JavaScript的实现 完整的JaveScript包…

JVM内存溢出与内存泄露

1. 什么是内存溢出? 当前创建的对象的大小大于可用的内存容量大小&#xff0c;发生内存溢出。2. 什么是内存泄露? 该回收的垃圾对象没有被回收&#xff0c;发生了内存泄露&#xff0c;垃圾对象越堆越多&#xff0c; 可用内存越来越少&#xff0c;若可用内存无法存放新的垃圾…

【神经网络】LSTM为什么能缓解梯度消失

1.LSTM的结构 我们先来看一下LSTM的计算公式&#xff1a; 1.遗忘门&#xff1a; 2.输入门&#xff1a; 3.细胞状态 4.输出门 2.LSTM的梯度路径 根据LSTM的计算公式&#xff0c;可以得出LSTM的cell state与、、都存在计算关系&#xff0c;而、、的计算公式又全部都与有关&#x…

【目标检测】入门基础原理学一遍就够了吧

我菜就爱学 文章目录目标检测实战1 目标检测简介1.1 目标检测分类1.2 检测的任务1.3 目标定位实现的思路1.4 两种bbox名称解释2 R-CNN2.1 目标检测-Overfeat模型2.2 目标检测-R-CNN模型2.2.1 候选区域&#xff08;ROI&#xff09;2.2.2 CNN网络提取特征2.2.3 特征向量训练分类器…

vue2--基于zm-tree-org实现公司部门组织架构图

1.安装zm-tree-org npm i zm-tree-org -S2.引入使用 import Vue from vue; import ZmTreeOrg from zm-tree-org; import "zm-tree-org/lib/zm-tree-org.css";Vue.use(ZmTreeOrg);3.个人需求 组织架构图中&#xff1a;部门可拖动更改所属部门&#xff0c;可增加部门…

javascript学习+Vue学习+项目开发

一 《学习JavaScript数据结构与算法》 1.ES2015的类是基于原型语法的语法糖 2.TypeScript是一个开源的、渐进式包含类型的JavaScript超集 以&#xff0e;ts为扩展名 以tsc命令来编译它 TypeScript允许我们给变量设置一个类型&#xff0c;不过写法太啰唆了。 TypeScript有一…

博客系统——项目测试报告

目录 前言 博客系统——项目介绍 1、测试计划 1.1、功能测试 1.1.1、编写测试用例 1.1.2、实际执行步骤 1.2、使用Selenium进行Web自动化测试 1.2.1、引入依赖 1.2.2、提取共性&#xff0c;实现代码复用 1.2.3、创建测试套件类 1.2.4、博客登录页自动化测试 1.2.5、…

SQL注入报错注入之floor()报错注入原理分析

简介 对于SQL注入的报错注入通常有三个函数需要我们掌握&#xff1a; extractValue(xml_frag, xpath_expr)updateXML(xml_target, xpath_expr,new_xml)floor() 对于extractValue和updateXML函数来说比较好理解&#xff0c;就不做解释了&#xff0c;这里只对floor函数的报错注…

LabVIEW网络服务安全2

LabVIEW网络服务安全2在客户端应用程序中创建签名对请求进行签名要求您具有能够从客户端的编程语言调用的MD5摘要算法以及SHA256加密摘要算法的实现。这两种算法通常都可用于大多数平台。还需要&#xff1a;1. 要使用的HTTP方法的字符串&#xff08;“GET”、“POST”、“PUT”…

收发器上的10G网络变压器有什么特殊要求?

Hqst盈盛电子导读&#xff1a;那么&#xff0c;为了保证我们购买到正常的真正的具备POE功能的10G网络变压器&#xff0c;我们又要如何做呢以及如何判断呢&#xff1f;随着高速以太网网络传速的快速发展&#xff0c;10G以太网&#xff0c;10G网络变压器滤波器在各个领域也得到了…

基于SpringCloud的可靠消息最终一致性05:保存并发送事务消息

在有了分布式事务的解决方案、项目的需求、骨架代码和基础代码,做好了所有的准备工作之后,接下来就可以继续深入了解「核心业务」了。 在前面了解分布式事务时,可靠消息最终一致性方案的流程图是这样的: 图三十一:可靠消息最终一致性 整个的流程是: 1、业务处理服务在事务…

GLSL shader学习系列1-Hello World

这是GLSL shader系列第一篇文章&#xff0c;本文学习目标&#xff1a; 安装编辑工具编写hello world程序 安装插件 我使用VSCode编写shader代码&#xff0c;在VSCode上有两个好用的插件需要先装一下&#xff1a; Shader languages support for VS Code glsl-canvas&#xf…

优维科技实力入选《2023深圳金融业信息技术融合创新案例汇编》

日前&#xff0c;由深圳市金融科技协会编制的《2023深圳金融业信息技术融合创新案例汇编》于“2022中国&#xff08;深圳&#xff09;金融科技全球峰会”正式对外发布&#xff0c;共汇编近90个优秀金融技术应用实践案例&#xff0c;优维科技凭借在“某银行自动化运维XC改造项目…