cin.get的用法

我常常看到

cin.get(a,10,'a'); <----這樣的用法

但是我都不知道

括號裡面a.,10.'a'分別代表什麼

還有它應該要是什麼資料型態

能否大概跟我講一下?

已更新項目:

那cin.get何cin.getline有什麼不一樣嗎?

1 個解答

評分
  • 9 年前
    最佳解答

    cin.get 有三種:

    1. cin.get(char), 這是讀一個char

    2. cin.get(char*, size), 這是讀一個長度不超過size的字串,遇到換行會停止

    3. cin.get(char*, size, char), 這是讀一個長度不超過size的字串 , 讀到和那個char相同的字元時停止 (讀到換行符號不會停)

    下面的範例程式,你在input輸入"1234567890",然後按enter,看看發生什麼事,你就會懂了。

    int main(void)

    {

    char a, aa[100];

    cin.get(a);

    cin.get(aa,5,'8');

    cout << a << endl << aa << endl;

    cin.get(a);

    cin.get(aa,5,'8');

    cout << a << endl << aa << endl;

    system("pause");

    return 0;

    }

    2012-01-18 14:08:20 補充:

    其實還有一種是沒有參數的

    char ch;

    ch = cin.get();

    這和 cin.get(ch)同義

    2012-01-18 15:44:53 補充:

    cin.getline( char*, size)

    和cin.get( char*, size)的差別

    在於get不會把換行符號吃進來,getline會把換行符號吃進來,然後用'\0'結束字元取代掉。

    而在一行input的字元數大於size時,

    get可以繼續向下讀那行文字後面的內容

    getline會導致後面文字不見

    把上面的程式碼,用cin.get(aa,5)和cin.getline(aa,5),拿來實驗一下就知道了

還有問題?馬上發問,尋求解答。