使用unix终端运行c ++程序

时间:2015-01-21 03:00:37

标签: c++ bash unix

我有C ++程序。我用过C ++。为了运行该程序,我通过unix终端传递值。但我无法通过传递args值来运行代码片段。

  1. 获取bash构建路径
  2. 用户/ venushka /库/开发商/ Xcode中/ DerivedData / testFunctions-blcisknaxkrqribioawblwrttsib /建造/产品/调试

    1. 我执行myFunctions bash为

      ./testFunctions

    2. 我将args传递为

      ./testFunctions 1

    3. 请在下面找到我使用的代码段

      int main(int argc, const char * argv[]) {
          // insert code here...
          //std::cout << "Hello, World!\n";
          if (*argv[0] == 1) {
              std::cout << "Hello, World!\n";
              //test();
          }
          return 0;
      }
      

      当我给出1作为arg我的程序行时,hello world还没有被执行。我做错了什么,请帮助我。谢谢 。请找到My terminal image

      下方的图片

1 个答案:

答案 0 :(得分:5)

这是错误的:

if (*argv[0] == 1)

argv [0]是一个字符串,它是程序的名称。取消引用它(使用*)可以获得第一个字符。它永远不会匹配1这是一个非打印的ASCII代码。代替:

if (strcmp(argv[1], "1") == 0)

这将检查程序的第一个参数(不是其名称)是否为字符串“1”。