C++ cin.get()有参数时的问题

 int main()
{
    char ch;
    int count = 0;
    cout << "enter char,# quit:" << endl;
    cin.get(ch);
    while (ch!=EOF)
    {
        cout << ch;
        count++;
        cin.get(ch);
    }
    cout << endl<< count <<"done!" << endl;
    cout << EOF<<endl;
    getchar();
}

这个程序,如果输入ctrl+z (Windows环境),会陷入死循环。。。不明白为什么,请大神指点

cin.get(ch);
->
cin.get(&ch);

cin >> ch;

#include
using namespace std;
int main()
{
char ch;
int count = 0;
cout << "enter char,# quit:" << endl;
cin.get(ch);
while (cin>>ch)
{
cout << ch;
count++;
}
cout << endl << count << "done!" << endl;
cout << EOF << endl;
getchar();
}