close

例如當輸入:a(enter)

則第一次cin>>ch1擷取a字元,enter因為停止擷取字元,故滯留於buffer供給給第二次cin.get(ch2)擷取,

因cin.get(ch2)僅能擷取接收單一個字元,不須停止擷取字元參數,故當接收第一次cin>>ch1完成後的enter鍵字符時,

第二次的cin.get(ch2)比對認為不是停止擷取字元,因而擷取接收enter鍵字符,因此,ch2=enter鍵空字符(=ascii碼十進制的10)

若第二次以擷取字串的cin.get(array,n)代替(使用enter鍵字符作為預設擷取字元),則當第二次的cin.get(array,n)擷取函式遇到

第一次cin>>ch1的enter鍵結束符,判定為第二次的cin.get(array,n)函式的停止結束符,因此不做任何擷取,即結束擷取完畢,使得
array[0]即以字串結束符'\0'表示( 即(int)array[0]=0 )

int main(void)
{
   char ch1;
   char ch2;
   
   cin>>ch1;
   cin.get(ch2);
   
   cout<<"ch1 = "<<     ch1<<endl;
   cout<<"ch2 = "<<(int)ch2<<endl;
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 minsin 的頭像
    minsin

    minsin的部落格

    minsin 發表在 痞客邦 留言(0) 人氣()