【问题标题】:CLion standard input while debugging调试时的 CLion 标准输入
【发布时间】:2015-10-06 13:52:47
【问题描述】:

我要做的基本上是:

./myProgram < myData.txt

在使用 CLion IDE 进行调试时。我只是找不到这样做的选项。

similar 问题 - 但特定于 MSVS 的产品

【问题讨论】:

  • 你应该有更多的运气在适当的开发人员forum提出这个问题

标签: c++ clion


【解决方案1】:

我遇到了同样的问题,似乎 CLion 还没有处理标准输入。

我通过在运行程序之前更改输入流解决了这个问题。

例如,如果您想在标准输入中输入文件流,您可以在 main 中编写:

std::ifstream in("ABSOLUTE_PATH_TO_YOUR_FILE");
std::cin.rdbuf(in.rdbuf());

然后,您可以找到一种方法来根据需要切换此流更改。请注意,对于文件,您需要提供绝对路径,因为应用程序是从与当前目录不同的目录运行的。

在 CLion 提供真正的解决方案之前,我希望这会有所帮助。

【讨论】:

  • 如果您不想对文件执行此操作,请记住您可以使用 stringstreams
【解决方案2】:

假设您的输入文件是myData.txt,您可以使用freopen 重新打开/重用stdin

freopen("myData.txt","r",stdin);

如果你想对你的输出做同样的事情:

freopen("myOutput.txt","w",stdout);

这适用于 std::cin、printf 等...

您可以在此处找到更多信息:http://www.cplusplus.com/reference/cstdio/freopen/


顺便说一句,已经有一个功能请求。如果您有兴趣,可以在这里投票,以便优先考虑: https://youtrack.jetbrains.com/issue/CPP-3153

【讨论】:

    【解决方案3】:

    As of CLion 2020.1 this feature is built in:

    输入重定向

    如果您需要将输入从文件重定向到 您的应用程序的标准输入,您现在可以这样做。在 名为重定向输入的配置。输入:

    • 相对路径(CLion 将添加工作目录路径)。
    • 绝对路径(将为远程配置重新映射)。
    • 或宏(如 FilePrompt)。

    【讨论】:

      【解决方案4】:

      仍然 Clion 没有像 pycharm 这样我们可以在调试代码时在终端中输入的功能。

      但它可以选择在调试时通过 .txt 文件提供输入。

      Image of debug setting window

      点击调试控制台左上角的设置图标,打开调试设置。然后勾选“Redirect input from”框,选择输入文件路径,点击“OK”。

      给你!

      现在您可以在调试代码时从文本文件中提供输入。

      【讨论】:

        【解决方案5】:

        对我来说,CLion 在一个名为“cmake-build-debug”的文件中创建可执行文件。在图片中查看我的文件结构。

        然后,我刚刚打开我的终端并转到包含可执行文件的目录并使用此命令在文本文件中输入:

        ./FirstProject < ../hw1.txt
        

        【讨论】:

        • 是的,但这是在询问调试。和运行程序不一样
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-24
        • 1970-01-01
        • 2017-12-04
        • 2014-08-05
        • 1970-01-01
        相关资源
        最近更新 更多