【问题标题】:Making command-line programs with arguments制作带参数的命令行程序
【发布时间】:2012-02-05 03:33:48
【问题描述】:

我发现可以通过 C++ 创建命令行程序。 我是一个 C++ 菜鸟,我只知道基本的东西,但我仍然想用它来创建新的命令行程序。
现在,我发现了这段代码:

//file name: getkey.exe
#include <conio.h>
int main(){
    if (kbhit())  return getche() | ('a' - 'A');
}

这出奇的简单,它的运行方式如下:getkey
但它没有解释如何创建带参数的命令(例如:getkey /? 或 /K 或 /foo...)

如何创建带参数的命令行程序?

【问题讨论】:

  • 第 1 步:Get a good introductory C++ book。第二步:通读上述书籍并做练习。第 3 步:阅读命令行参数以及如何通过 int main(int argc, char**argv) 获取它们。
  • 我认为您所说的“CMD 命令”通常称为“程序”。是的,C++ 是一种编程语言,可以用来创建程序。

标签: c++ command cmd creation


【解决方案1】:

将函数main 定义为采用这两个参数:

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

argc 将填充 number 个传递的参数,argv 将是一个 这些参数的数组,以空字符结尾的字符串。 (C 风格的字符串)

程序名称本身将计为第一个参数,因此getkey /? 会将 argc 设置为 2argv[0] 将是“getkey”,argv[1] 将是“/?

【讨论】:

    【解决方案2】:

    您只需要 main() 的不同声明:

    #include <iostream>
    int main(int ac, char* av[]) {
    {
        std::cout << "command line arguments:\n";
        for (int i(1); i != ac; ++i)
            std::cout << i << "=" << av[i] << "\n";
    }
    

    【讨论】:

      【解决方案3】:

      处理命令行参数更改:

      int main()
      

      int main(int argc, char** argv)
      

      argc 是命令行参数的数量(argv 中的元素数量)。 argv 是命令行参数(argv 中的第一个条目是程序可执行文件的名称)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        • 1970-01-01
        • 2016-02-09
        • 1970-01-01
        • 2012-02-25
        相关资源
        最近更新 更多