zoukankan      html  css  js  c++  java
  • C++ main函数的参数

      C++的main函数可以没有输入参数,也可以有输入参数,而且只能有两个参数,习惯上coding如下:

     int main(int argc, char* argv[]) 或者 int main(int argc, char** argv)

      其中,argc = argument count :表示传入main函数的数组元素个数,为int类型,而 argv = argument vector :表示传入main函数的指针数组,为char**类型。第一个数组元素argv[0]是程序名称,并且包含程序所在的完整路径。argc至少为1,即argv数组至少包含程序名。

    #include <iostream>
    using namespace std;
    int main(int argc, char* argv[])
    {
        for(int i=0;i<argc;i++)
            cout<<argv[i]<<endl;
        return 0;
    }

      一般编译器默认使用argc和argv两个名称作为main函数的参数,但这两个参数如此命名并不是必须的,你可以使用任何符合C++语言命名规范的变量名,但要保证第一个参数类型为int型,第二个参数为char**型,如下图所示。

    #include <iostream>
    using namespace std;
    int main(int count, char* input_parameters[])
    {
        for(int i=0;i<count;i++)
            cout<<input_parameters[i]<<endl;
        return 0;
    }

      由于main函数不能被其他函数调用,因此不可能在程序内部取得实际值。main函数的参数值是从操作系统命令行上获取的。在window系统中,假如编译链接成的可执行文件为my_project.exe,则在命令提示符(快捷键windows+R,输入cmd)中,键入如下命令(可执行文件 参数 参数 参数 ...):

     my_project.exe jisongxie 1996

      将会传递三个参数给main函数,第一个argv[0]是前面提到的文件名,第二个argv[1]是"jisongxie",第三个argv[2]是“1996”。同理,可以传入更多的参数。在ubuntu系统中,可以通过终端进行相同的操作。

      传入的参数数组类型为char *字符串类型,可以通过atoi,atof函数进行类型的转换。

      1、atoi,即ascii to integer,把字符串转换成int

      2、atof,即ascii to float,把字符串转换成double

      3、atol,即ascii to long int,把字符串转换成long int

      4、atoll,即ascii to long long int,把字符串转换成long long int

      例如上述输入的1996,可以得到如下:

     int year = atoi(argv[2]);  // year = 1996

      因此,通过上述的命令行输入以及程序里面的类型转换,可以通过命令行窗口传入值(字符串和数字)到程序中运行。

  • 相关阅读:
    震旦199打印机扫描A4文件
    震旦199打印机使用“多组多张文件”复印功能
    局域网电脑快速添加共享的打印机
    打印机连续打印,速度变慢,打印队列一直自动闪烁
    用IntelliJ IDEA编译,编译之后提示 无效的标记: -release
    hao360恶意篡改IE首页——修复方法
    联想一体机怎么设置u盘启动|联想一体机bios改U盘启动方法(转)
    解决局域网IP冲突
    Cisco Packet Tracer 交换机 2950-24 配置
    静态路由作用和添加删除命令
  • 原文地址:https://www.cnblogs.com/jisongxie/p/7892366.html
Copyright © 2011-2022 走看看