关于cin、、(ch)返回值的问题

时间:2025-02-28 19:11:31

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码)

即输出的类型看定义的变量类型而定,但系统都将其看为字符(()函数用于字符的输入)。