1. 程式人生 > >關於cin、cin.get()、cin.get(ch)返回值的問題

關於cin、cin.get()、cin.get(ch)返回值的問題

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()函式用於字元的輸入)。