兩種狀況不須使用cin.get()函式吸收多餘字元:

1.第一個擷取輸入字元的函式為getline(array,n,delim 'ch')且停止擷取字元使用預設的enter鍵'\n'時,函式會將停止擷取字元enter鍵'\n'從緩衝區丟棄,因此沒有多餘的enter鍵'\n'字元需給cin.get()函式吸收.

若第一次擷取函式為 get(array,n,delim 'ch'),則不會將停止擷取字元從緩衝區丟棄,因此須使用cin.get()將前一次的停止擷取字元'ch'與enter鍵'\n'吸收.

※getline(array,n,delim 'ch')丟棄的為停止擷取字元'ch',而不是enter鍵'\n'或空白字元,如果停止擷取字元使用其他一般字元'ch',而非預設的enter鍵'\n',則僅會將停止擷取字元'ch'丟棄,enter鍵'\n'依舊會滯留於buffer內,被下一個擷取函式吸收,因此此狀況依舊需使用cin.get()函式吸收多餘的enter鍵'\n')

2.第二次擷取輸入字元的函式為cin>>,因cin會自動跳過過濾空白字元,故不須使用cin.get()吸收多餘字元.

arrow
arrow
    全站熱搜

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