为什么这么写输入的第一个字符输出不了

#include<iostream>
#include<stack>
using namespace std;

int main()
{
	char ch;
	getchar();
	stack<char>s;
	while (1)
	{
		ch = getchar();
		if (ch == ' ' || ch == '\n' || ch == EOF)
		{
			while (!s.empty())
			{
				cout << s.top();
				s.pop();
			}
			if (ch == '\n' || ch == EOF)	break;
		}
		else  s.push(ch);
	}
	return 0;
}

 

第八行注释掉试试?