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

标签 c++ bash unix

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

  1. 获取bash构建路径为

Users/venushka/Library/Developer/Xcode/DerivedData/testFunctions-blcisknaxkrqribioawblwrttsib/Build/Products/Debug

  1. 我将 myFunctions bash 执行为

    ./testFunctions

  2. 我将 args 传递为

    ./testFunctions 1

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

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

最佳答案

这是错误的:

if (*argv[0] == 1)

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

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

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

关于c++ - 使用 unix 终端运行 c++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28058907/

相关文章:

c++ - CDC::DrawText 不起作用?

c++ - 用C++标准库分析Clang线程安全

c++ - 使用 C++ 获取本地管理员用户名

linux - Bash:组合多个命令的输出

使用 tar 查找差异的 c 代码

c++ - 是否可以在 cdb/windbg 中进行语法高亮显示?

windows - 使用 Git Bash 将文件下载到我的计算机?

bash - 使用 Bash 删除除某些文件和目录之外的所有文件和目录

date - 在 Unix 中减去日期

unix - 格式化SVN diff作为并排比较