gpt4 book ai didi

c++ - 如何在 Xcode 5 中使用编辑方案将参数传递给 main.cpp

转载 作者:行者123 更新时间:2023-11-30 02:48:04 28 4
gpt4 key购买 nike

我以这个简单的代码为例:

#include <iostream>

int main(int argc, const char * argv[]){
int a, b, c;
std::cin >> a >> b >> c ;
std::cout << a << " "<< b << " " << c;
}

我想将此代码传递给名为 file.txt 的文本文件中的参数“1 2 3”,该文件位于与 main 相同的文件中。

在 Product > Edit Schemes 中,我选择 Run Argument 侧栏选项,然后选择参数选项卡。在“启动时传递的参数”下,我输入 < file.txt 选择确定并运行我的程序。该程序构建并运行但不传递 file.txt 中的参数“1 2 3”。我还缺少其他设置吗?我是否将文件放在错误的文件夹中?真的很想完成这项工作,这样我就可以在大量数据上测试代码,手动输入这些数据会很烦人。

如果我 cout << argv[1] 如果我不引用,我会得到“<”。如果我确实引用了参数,我会得到“< text.txt。”

最佳答案

不幸的是,Xcode 并不像您要求的那样直接支持命令行文件重定向。参数用于在 main 中设置 argv vector 。当您在命令行上运行程序时,shell(通常是 /bin/bash)解释并设置重定向,并且不会将这些位作为参数传递给程序。 XCode 不使用 shell 来启动您的程序,也不设置重定向。

在不更改源代码的情况下,通过 Xcode 最接近的方法需要两个步骤:

  1. 在您方案的运行设置中,在“信息”选项卡中,将可执行文件设置为 /bin/sh。您需要从弹出菜单中选择“其他...”以打开“打开”对话框,然后键入 /bin/sh。当您在打开对话框中键入 / 时,您将看到一个弹出文本框。

  2. 在“参数”选项卡中,添加此参数:

    -c "$TARGET_BUILD_DIR/$EXECUTABLE_PATH < /path/to/text.txt"

    /path/to/text.txt 替换为您的输入文件的路径。

这将运行一个 shell,并要求 shell 使用输入重定向运行您的程序,但是您会发现 Xcode 会忽略您的断点,这使得调试您的程序变得困难。

关于c++ - 如何在 Xcode 5 中使用编辑方案将参数传递给 main.cpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22262828/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com