运行 使用 unix 终端的 c++ 程序
Run c++ program using unix terminal
我有C++程序。在那里我用过 C++ 。为了 运行 该程序,我正在通过 unix 终端传递值。但是我无法通过传递参数值来 运行 代码片段。
- 获取bash构建路径为
Users/venushka/Library/Developer/Xcode/DerivedData/testFunctions-blcisknaxkrqribioawblwrttsib/Build/Products/Debug
我执行了 myFunctions bash 作为
./testFunctions
我将参数传递为
./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 尚未执行。我做错了什么请帮助我。谢谢你 。请找到下图
这是错误的:
if (*argv[0] == 1)
argv[0] 是一个字符串,它是您的程序的名称。取消引用它(使用 *
)给你第一个字符。它永远不会匹配 1
这是一个非打印的 ASCII 码。相反:
if (strcmp(argv[1], "1") == 0)
这将检查程序的第一个参数(不是它的名称)是否是字符串“1”。
我有C++程序。在那里我用过 C++ 。为了 运行 该程序,我正在通过 unix 终端传递值。但是我无法通过传递参数值来 运行 代码片段。
- 获取bash构建路径为
Users/venushka/Library/Developer/Xcode/DerivedData/testFunctions-blcisknaxkrqribioawblwrttsib/Build/Products/Debug
我执行了 myFunctions bash 作为
./testFunctions
我将参数传递为
./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 尚未执行。我做错了什么请帮助我。谢谢你 。请找到下图
这是错误的:
if (*argv[0] == 1)
argv[0] 是一个字符串,它是您的程序的名称。取消引用它(使用 *
)给你第一个字符。它永远不会匹配 1
这是一个非打印的 ASCII 码。相反:
if (strcmp(argv[1], "1") == 0)
这将检查程序的第一个参数(不是它的名称)是否是字符串“1”。