cin,get,getline


一、cin

1.cin使用空白(空格、制表符和換行符)來確定字符串結束的位置,並且對於換行符,cin會把換行符留在輸入隊列。cin讀取字符串放到數組中,並自動在結尾添加空字符。

例如:

char name[20];
cin>>name;

輸入:David Smith
cin只會把David放到name數組中並添加空字符'\0'
    cout << "What year was your house built?\n";
    int year;
    cin >> year;
    // cin.get();
    cout << "What is its street address?\n";
    char address[80];
    cin.getline(address, 80);
    cout << "Year built: " << year << endl;
    cout << "Address: " << address << endl;
    cout << "Done!\n";
    // cin.get();
    return 0; 
輸入:
1996
 如果沒有cin.get(),cin>>year會把換行符留在輸入隊列,則cin.getline會把讀取換行符並丟棄掉,address字符串為空

2.發送給cin的輸入被緩沖,只有用戶按下回車鍵后,輸入的內容才會發送給程序。

    char ch;
    int count = 0;      // use basic input
    cout << "Enter characters; enter # to quit:\n";
    cin >> ch;          // get a character
    while (ch != '#')   // test the character
    {
        cout << ch;     // echo the character
        ++count;        // count the character
        cin >> ch;      // get the next character
    }
    cout << endl << count << " characters read\n";
輸入:
see ken run#really fast
輸出:
seekenrun

cin忽略空格和換行符,所以輸入的空格沒有回顯;發送給cin的輸入被緩沖,所以輸入#后,后面還可以輸入其他字符;

 

二、cin.getline()

getline 讀取一行字符串,直到到達換行符,隨后getline將丟棄換行符。

 

三、cin.get()

1.cin.get(str,num)

讀取一行字符串,直到到達換行符,將換行符保留到輸入序列中。

2.cin.get(char) 讀取一個字符

cin.get(ch)讀取輸入中的下一個字符(包括空格和換行符),但輸入仍被緩沖。

3.cin.get() 讀取緩沖區的一個字符,返回值為char。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM