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

C++ 如何使用Xcode 5中的编辑方案将参数传递给main.cpp,c++,xcode,xcode5,C++,Xcode,Xcode5,我以以下简单代码为例: #include <iostream> int main(int argc, const char * argv[]){ int a, b, c; std::cin >> a >> b >> c ; std::cout << a << " "<< b << " " << c; } #包括 int main(int argc,const c

我以以下简单代码为例:

#include <iostream>

int main(int argc, const char * argv[]){
    int a, b, c;
    std::cin >> a >> b >> c ;
    std::cout << a << " "<< b << " " << c;
}
#包括
int main(int argc,const char*argv[]{
INTA、b、c;
标准:cin>>a>>b>>c;

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

在不更改源代码的情况下,要想通过Xcode获得最接近的结果,需要两个步骤:

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

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

    -c "$TARGET_BUILD_DIR/$EXECUTABLE_PATH < /path/to/text.txt"
    
    -c“$TARGET\u BUILD\u DIR/$EXECUTABLE\u PATH
    用输入文件的路径替换
    /path/to/text.txt


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

    没有快捷方式将文件中包含的参数传递给程序。如果您在自己的行中有数字,这是否有效?@BrianBi Yes there是。除非我们彼此误解。我可以在命令行中这样做。只是不想来回。你确定吗?参数选项是什么?其他一些帖子有人在旧版本中这样做。你的建议意味着使用前脚本或后脚本选项。如果是,哪一个?我将两者都试一试。谢谢b、 好的,我现在明白了。我在想也许Xcode使用了shell来启动程序。我现在唯一的问题是在“信息”选项卡下没有可执行文件的/bin/sh选项,也没有运行安装程序。好的,我就是这么想的,但是找不到/bin/sh。每个Mac OS X安装都有
    /bin/sh
    ,但是你无法得到它默认情况下,通过打开对话框将其打开。您可以键入
    /
    以弹出文本框,也可以按Command-Shift-。要使打开的对话框显示所有内容,请导航到硬盘的根目录,然后从那里导航到
    /bin/sh
    。确定要去哪里。但必须执行Command-Shift-g才能将goto文件夹转到drop down.现在当我运行时,我得到:/bin/sh:/path/to/text.txt:没有这样的文件或目录注意:我在文件路径中放的不是一般路径。