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