估计有很多人首次都是通过Windows(微软的操作系统)来使用计算机的,Windows的设计导致很多人认为所有程序只要双击一下就可以被正确执行了,所以一大堆初学程序设计的童鞋就会遇到些疑问:
为什么双击之后,程序没有正确执行?
程序怎么黑一下就没有了?
程序怎么跟我说要输入参数?
此文用于说明如何在windows操作系统上正确地执行程序,你也许不知道我再说什么,windows程序执行有啥可说的呢?双击不就行了么?唉,都是被微软的傻瓜式开发弄得我们退化了呀。
说清楚这些问题有很多办法。我们从Windows执行程序的方式说起吧。
Windows上程序的执行方式
据我所知(为了不把话说绝),Windows上执行程序主要有两种方式:一种就是双击;一种是通过命令提示符(cmd)来执行。从操作上来讲,前者需要鼠标,后者可以不需要鼠标。至于双击这种方式,估计才接触windows的人都会使用,所以就不说了。后一种方式怎么用?很简单,首先启动cmd,启动的方法可以有几种,我喜欢:Windows+R组合键,在输入框中输入cmd,敲回车,这样不用鼠标。如下图:
启动cmd之后,比如我想启动记事本编辑一个文件名为demo.txt的文件,可以在cmd中输入:notepad demo.txt 然后敲回车。
上面输入的notepad就是记事本的可执行程序的名字,它存在于Windows系统的PATH目录(系统搜索可执行程序的目录)下,demo.txt是传给notepad的一个参数。
我们自己的程序是如何知道程序的执行参数的
知道怎么用命令行,那我的程序怎么知道接受的参数是什么呢?C/C++的main函数的参数就是解决这个问题的。
看下main函数的标准定义:
int main(int argc, char** argv) { return 0; }
其中第一个参数argc表示的是我在启动程序时传给操作系统的参数个数,例如notepad demo.txt,argc的值就是2。
第二个参数argv存的是参数的值。例如notepad demo.txt 的argv是 {{"notepad"},{"demo.txt"}}。
大家可以再看看这篇博文,或许会理解的更好点。