如何重定向Xcode 4中的I/O?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (43)

刚刚安装了Xcode 4,试图将输入从一个文件重定向到我的C++程序。我尝试在运行方案的“参数”部分中使用通常的“<infile.txt”,但这是行不通的。我能够很好地重定向Xcode 3中的输入和输出(通过编辑可执行文件的参数)。对于如何在新版本中做到这一点,有什么建议吗?

提问于
用户回答回答于

我用各种类型的参数进行了测试,看起来Xcode有一个带有参数的错误(最后一次测试:Xcode 8)。

但是有一种类似效果的模拟方法。必须使用环境变量。

添加一个具有要重定向的文件名的环境变量:

然后,在代码中,必须将此文件“重定向”到标准输入(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;
}

就这样...只有两行代码

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

这不是最好的解决方案,但是Xcode有这个问题,这是唯一的解决方案!

扫码关注云+社区

领取腾讯云代金券