Search code examples
c++couteofclion

C++: ctrl+d terminates program (ubuntu)


(New to C++)

I have this simple code (simplified for the question):

 int main()
{
    string currInput;
    while (getline(cin, currInput))
    {
    }
    cout << "wont be printed" << std::flush;
    return 0;
}

I have been debugging for a while and I probably miss something:

When running it and pressing ctrl+d (after some strings or right away), it does not print the string that is after the while loop. It just stop running. I thought it might be something with flushing so I added that too. What am I missing?

PS: When running in debug, it mentions something about sighup signal.


Solution

  • So, with a lot of help from @manni and @rici, we found the problem.

    It turns out to be a known problem in cLion.

    see sending EOF to stdin in Clion IDE

    https://intellij-support.jetbrains.com/hc/en-us/community/posts/206849765-How-to-enter-EOF-Ctrl-z-in-Run-console-

    https://youtrack.jetbrains.com/issue/IDEA-12514