【问题标题】:Xcode won't pass arguments to C++ executableXcode 不会将参数传递给 C++ 可执行文件
【发布时间】:2015-05-13 20:53:36
【问题描述】:

我正在尝试使用 Xcode 调试 C++ 项目。我的程序通过标准输入查找输入,如下所示:

string line;
getline(cin, line);

我有一个名为 input.txt 的输入文件,我通常会像这样将它传递给可执行文件:

./verti < input.txt

为了在 Xcode 中调试时完成同样的事情,我添加了一个参数,以便在启动时由 Product > Scheme > Edit Scheme... > Run > Arguments 传递,其值为 &lt; input.txt。文本文件与可执行文件位于同一工作目录中,但是当我构建/运行程序时,文本文件没有被传入。程序只是等待它应该接收的输入。如果你们能提供任何见解,那将非常有帮助。

我在 OS X 10.10.1 上运行 Xcode 6.3.1。

【问题讨论】:

  • 您可能错过了使用std::ifstream 打开该文件并将cin 替换为该变量。

标签: c++ xcode debugging command-line-arguments


【解决方案1】:

&lt; 实际上是由 shell 解释的(当使用终端和命令行时)。如果是 Xcode,则不涉及 shell,因此您无法通过管道将输入发送到 stdin

你必须在你的进程中打开文件(argv[1])并使用文件描述符而不是标准输入。

【讨论】:

  • @πάνταῥεῖ 我在问题中看不到这一点。 OP 显然正在尝试使用
  • 你说得对,我看错了 "... 运行 > 值为
  • 谢谢,你是对的! “
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 2012-05-05
  • 2010-11-26
  • 2013-11-21
  • 2018-04-07
相关资源
最近更新 更多