close

int main()
{
     char ch1;
     char array1[20];
     char array2[20];
     
     cin>>ch1;
     cin.get(array1,20,'g');
     cin>>array2;
     

例如輸入a(enter鍵)

      tyg(enter鍵),則輸出

           ch1=a,

(int)array1[0]=10  //第一次enter鍵字符.

             array1[1]=t

     array1[2]=y
(int)array1[3]=0  //以get()函式擷取字串,因此加上字串結束符'\0'
     
      arry2[0]=g  //因第二次以get()函式執行,故其設定的停止擷取鍵'g'被滯留在buffer內,並接著被第三次cin>>array2;擷取
(int)array2[1]=0 字串結束符??????

第一次執行擷取結束enter鍵字元,滯留在buffer內,並被第二次get()函式擷取.

因第二次以get()函式執行,故其設定的停止擷取鍵'g'則被滯留在buffer內,並接著被第三次cin>>array2;擷取(若第二次以getline()執行時,滯留在buffer停止擷取鍵'p'則被捨棄).

且第二次停止擷取鍵'g'之後的enter鍵字元不被擷取.並在最後加上字串結束符'\0'.

 

 

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

    minsin的部落格

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