cin.get()没有走出循环

its*_*ode 2 c++

我使用以下代码:

#include <stdio.h>
#include <iostream>
using namespace std;

int main ()
{
    char c ;
    c = cin.get() ;
    do {
        cout.put(c) ;

        c = cin.get() ;
    } while ( !cin.eof()) ;

    cout << "coming out!" << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面代码的问题是,它没有脱离循环,这意味着它不打印"出来".任何人都可以帮忙为什么会这样?我在mac和linux上测试这个程序.

谢谢

Mic*_*bus 5

如果它获得文件结尾,它会打印出"".如果您将文件重定向到它,它将退出循环

./program < file
Run Code Online (Sandbox Code Playgroud)

或者通过点击ctrl + d(linux)或ctrl + z(dos)自己发送文件结尾