在Xcode 4中重定向I / O.

时间:2011-03-30 17:55:56

标签: c++ xcode io arguments

我刚刚安装了Xcode 4,我正在尝试将输入从文件重定向到我的C ++程序。我已尝试在我的Run方案的“Arguments”部分中使用通常的“< infile.txt”,但这不起作用。我能够很好地重定向Xcode 3中的输入和输出(通过编辑可执行文件的参数)。有关如何在新版本中执行此操作的任何建议吗?

谢谢!

萨默尔

1 个答案:

答案 0 :(得分:8)

我测试了各种类型的Arguments,看起来Xcode有一个Arguments的错误(最后一个测试:Xcode 8)。

但是有一种替代模拟具有类似效果。您必须使用环境变量。

添加一个环境变量,其中包含您要重定向的文件名:

enter image description here

然后在您的代码中,您必须将此文件“重定向”到标准输入(cin):

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main (int argc, const char * argv[])
{
    ifstream arq(getenv("MYARQ"));
    cin.rdbuf(arq.rdbuf());

    string value;
    cin >> value;
    cout << value;

    return 0;
}

就是它......只有2行代码

ifstream arq(getenv("MYARQ"));
cin.rdbuf(arq.rdbuf());

这不是最好的解决方案,但是当xcode遇到这个问题时,这是唯一的解决方案!