为什么不能用cin用getchar()就可以

#include
using namespace std;
int main()
{
char a;
cin>>a;
if(a%2==0)
cout<<"NO"<<endl;
else cout<<"YES"<<endl;
return 0;
}

用cin报错吗

用cin >> a;会自动过滤掉不可见字符(如空格 回车 tab等)。当遇到空格、回车等字符时会跳过,读取空格、回车之后的字符
如果需要获取空格和回车字符就要用getchar()

有区别的,cin 无法接收空格和回车符,也就是当输入空格和回车符的时候,a是没有值的,当输入空格时,程序会一直卡在cin >> a这里。
但是getchar()是可以获取空格和回车符并返回给a的。
如有帮助,请帮忙采纳一下,谢谢。

cin输入一个字符串,getchar输入任一字符