调试时CLION标准输入

时间:2015-10-06 13:52:47

标签: c++ clion

我试图做的基本上是:

./myProgram < myData.txt

我正在使用CLion IDE进行调试。我无法找到这样做的选项。

similar问题 - 但针对MSVS的产品

5 个答案:

答案 0 :(得分:21)

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

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

例如,如果要在stdin中输入文件流,可以在main中写入:

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

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

我希望这可以帮助,直到clion提供真正的解决方案。

答案 1 :(得分:5)

假设您的输入文件为myData.txt,您可以使用stdin

重新开启/重复使用freopen信息流

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

答案 2 :(得分:1)

As of CLion 2020.1 this feature is built in

输入重定向

如果您需要将输入从文件重定向到 在您的应用程序的stdin中,您现在可以执行此操作。在 配置称为重定向输入。输入:

  • 相对路径(CLion将以工作目录路径开头)。
  • 绝对路径(将为远程配置重新映射)。
  • 或宏(如FilePrompt)。 enter image description here

答案 3 :(得分:0)

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

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

implementation

点击调试控制台(左上角)中的设置图标,打开调试设置。然后勾选“重定向输入自”框并选择输入文件路径并点击“确定”。

给你!

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

答案 4 :(得分:-4)

对我来说,CLion在名为&#39; cmake-build-debug&#39;的文件中创建可执行文件。在图片中查看我的文件结构。

Executable File Relative To Text File

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

./FirstProject < ../hw1.txt