1、cin、带参数与不带参数()的返回值问题
cin>>ch、和带参数的cin,get()返回的是cin对象,只在需要bool类型数据的地方返回bool类型的数据;而不带参数的()返回值是整型的字符编码,也就是说可以用ch=()来对输入的字符进行非bool类型的数据比较;
例:1)、while((cin>>ch)!=‘@’)不合法,cin>>的返回值类型与‘@’不同,不能比较
2)、while((ch)!='@')不合法,理由同上
3)、while(()!='@') 合法,将输入字符的ASCII码@字
2、不带参数的()的输入输出问题
若有ch=();cout<<ch;当ch的类型不同时,对于数值与字符型的输入其输出情况见下表
当有char ch;
输入 | 输出 |
字符 | 该字符 |
数字 | 该数字(但在系统中是将其看做char类型的存储的是其编码一般为ASCII编码) |
当有int ch;
输入 | 输出 |
字符 | 数字(该字符对应的ASCII码) |
数字 | 数字(但不是原数字,而是输入数字最高位的十进制ASCII码) |
即输出的类型看定义的变量类型而定,但系统都将其看为字符(()函数用于字符的输入)。