C++输入字符判别!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/31 13:07:11
#include<iostream.h>
void main()
{
char c;
cout<<"请输入字符 c:";
cin>>c;
if('0'<=c&&c<='9')
cout<<"c="<<c<<"输入的是数字";
else if('A'<=c&&c<='Z')
cout<<"c="<<c<<"输入的是大写字母";
else if('a'<=c&&c<='z')
cout<<"c="<<c<<"输入的是小写字母";
else if(c==' ')
cout<<"c="<<c<<"输入的是空格";
else if(c=='/n')
cout<<"c="<<c<<"输入的是回车换行符";
else
cout<<"c="<<c<<"输入的是其他字符";

}
为什么以上的程序,运行时,大小写数字其他字符都可以判断,
就是空格和回车换行判别不了呢?
希望经过自己运行了成功了再回答,谢谢
应如何改正呢?

你的程序没问题。
问题与cin有关系,使用cin时,空格和回车是特定字符,空格用来分隔多个变量,回车表示输入结束,这两个字符是不会通过cin传给变量的,所以你的c一直没有得到输入。

#include<iostream.h>
#include<conio.h>
void main()
{
char c,d;
cout<<"请输入字符 c:";
cin.unsetf(ios::skipws);
cin>>c;
if('0'<=c&&c<='9')
cout<<"c="<<c<<"输入的是数字";
else if('A'<=c&&c<='Z')
cout<<"c="<<c<<"输入的是大写字母";
else if('a'<=c&&c<='z')
cout<<"c="<<c<<"输入的是小写字母";
else if(c==' ')
cout<<"c="<<c<<"输入的是空格";
else if(c==0x0a) // \n也可以
cout<<"c="<<c<<"输入的是回车换行符";
else
cout<<"c="<<c<<"输入的是其他字符";
}

因为cin>>会自动忽略掉空格和回车