關於cin、cin.get()、cin.get(ch)返回值的問題
阿新 • • 發佈:2018-11-17
1、cin、帶引數與不帶引數cin.get()的返回值問題
cin>>ch、和帶引數的cin,get()返回的是cin物件,只在需要bool型別資料的地方返回bool型別的資料;而不帶引數的cin.get()返回值是整型的字元編碼,也就是說可以用ch=cin.get()來對輸入的字元進行非bool型別的資料比較;
例:1)、while((cin>>ch)!=‘@’)不合法,cin>>的返回值型別與‘@’不同,不能比較
2)、while(cin.get(ch)!='@')不合法,理由同上
3)、while(cin.get()!='@') 合法,將輸入字元的ASCII碼@字
2、不帶引數的cin.get()的輸入輸出問題
若有ch=cin.get();cout<<ch;當ch的型別不同時,對於數值與字元型的輸入其輸出情況見下表
當有char ch;
輸入 | 輸出 |
字元 | 該字元 |
數字 | 該數字(但在系統中是將其看做char型別的儲存的是其編碼一般為ASCII編碼) |
當有int ch;
輸入 | 輸出 |
字元 | 數字(該字元對應的ASCII碼) |
數字 | 數字(但不是原數字,而是輸入數字最高位的十進位制ASCII碼) |
即輸出的型別看定義的變數型別而定,但系統都將其看為字元(cin.get()函式用於字元的輸入)。