| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C/C++中如何让程序接受并处理命令行参数 -> 正文阅读 |
|
[C++知识库]C/C++中如何让程序接受并处理命令行参数 |
经由操作系统,用户可以为应用程序的运行指定额外参数,进而影响应用程序的行为。对于C/C++程序而言,经由操作系统提供的运行参数可由main()函数获取并处理。
读者如果有使用Linux终端或者Windows命令行的的经验,便知道操作系统是可以向应用程序传递参数的。比如,下述Linux终端命令为当前目录下的文件file1制作一份拷贝,其文件名为file2。
这行命令里的字符串”file1”、”file2”即为cp命令的参数。读者自行创建并构建(build)▲完成的可执行程序也是应用程序,我们也可以通过操作系统为自己的应用程序提供参数,进而影响该应用程序的行为。对于C/C++程序而言,经由操作系统提供的运行参数可由main()函数获取并处理。 请读者在Qt Creator中新建一个名为add的Plain C Application,然后将其中的main.c修改如下:
在编译并运行程序前,我们还需要在Qt Creator中做一些设置,以便指定程序运行的参数。在Qt Creator中选择“项目”页,在“运行设置”中将Command line arguments设置为33 777 103,这相当于给应用程序提了以空格分隔的三个参数,分别为33、777和103,如图6-7所示。请注意图中箭头以及黑色方框标识的内容。
说明:在读者的计算机上,执行结果中的地址很可能与本书不同。 要解释这段程序及其执行结果,需要从main()函数的参数说起。
argc及argv都是通过操作系统传递给应用程序的:
🚩第3行:stdlib.h头文件引入函数atoi( const char* str),该函数将参数字符串转换成对应的整数。如果希望将字符串转换成浮点数,应使用函数atof()。提醒读者注意,提供给atoi()函数的参数字符串需要是合法的整数格式,否则可能会引发错误。 🚩第6 ~ 7行:通过循环,将argc个argv[i]分别按字符串以及地址形式输出。本例中,执行结果的前4行为相关输出。可以看出,argc的值为4,其中,第0个参数字符串即为被运行的可执行文件的路径,后面3个就是我们在“运行设置”中填入的Command line arguments。 🚩第9 ~ 11行:通过循环将除去第0个之外的全部参数字符串转换为整数,并求和。从字符串到整数的转换是通过atoi()函数完成的。 🚩第13行:打印求得的和。 直观上,本例中的应用程序add.exe将参数中列出的全部整数相加,并输出和值。为了进一步让读者体会参数字符串的使用, 作者在自己的Windows 10计算机上,进行了如下操作:
相关过程如下图所示。 为了帮助更多的年轻朋友们学好编程,作者在B站上开了两门免费的网课,一门零基础讲Python,一门零基础C和C++一起学,拿走不谢! 如果你觉得纸质书看起来更顺手,目前Python有两本,C和C++在出版过程中。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 12:43:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |