CLion standard input while debugging

后端 未结 4 1197
[愿得一人]
[愿得一人] 2021-02-03 23:41

What I\'m trying to do is basically:

./myProgram < myData.txt

While I\'m debugging with CLion IDE. I just can\'t find the option to do so.

<
相关标签:
4条回答
  • 2021-02-03 23:55

    I had the same problem and it seems that CLion is not handling standard inputs yet.

    I got around this problem by changing the input stream before running my program.

    As an example if you want to input a file stream inside your stdin you can write in your main:

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

    Then you can find a way to toggle this stream change when you want. Note that for files you will need to provide absolute path since the application is run from a different directory than the current one.

    I hope this can help until CLion provides a real solution.

    0 讨论(0)
  • 2021-02-03 23:55

    As of CLion 2020.1 this feature is built in:

    Input redirection

    If you need to redirect input from a file to the stdin of your application, you can now do that. Use a new field in the configuration called Redirect input from. Enter:

    • A relative path (CLion will prepend with the Working directory path).
    • An absolute path (will be remapped for remote configurations).
    • Or macros (like FilePrompt).
    0 讨论(0)
  • 2021-02-03 23:56

    For me, CLion creates the executable in a file called 'cmake-build-debug'. Check out my file structure in the pic.

    Then, I just opened up my terminal and went to the directory containing the executable and used this command to pipe in the text file:

    ./FirstProject < ../hw1.txt
    
    0 讨论(0)
  • 2021-02-04 00:00

    Assuming your input file is myData.txt, you can reopen/reuse the stdin stream using freopen

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

    if you want to do the same with your output:

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

    this will work for std::cin, printf, etc...

    You can find more information about this here: http://www.cplusplus.com/reference/cstdio/freopen/


    By the way, there is already a feature request for this. If you are interested, you can vote here so it gets prioritized: https://youtrack.jetbrains.com/issue/CPP-3153

    0 讨论(0)
提交回复
热议问题