C++中cin.getline()和getline()函數的區別小結
前言
C++輸入過程中,是把輸入加載到緩沖區中,然後對緩沖區中的字符進行讀取。cin,cin.get(),cin.getline()三個函數雖然都可以進行舒服讀取,但是它們對緩沖區內的數據處理方法是不同的(如遇到【space】、【enter】的處理方法)。本文簡單介紹cin.getline()和getline()函數的區別。
cin.getline():
用法:接收一個字符串,可以接收空格並輸出,需包含#include< cstring >
char m[20]; cin.getline(m,5); cout<<m<<endl;
輸入:jkljkljkl
輸出:jklj
接收5個字符到m中,其中最後一個為’\0’,所以隻看到4個字符輸出;
延伸:
1、cin.getline()實際上有三個參數,cin.getline(接收字符串的變量,接收字符個數,結束字符)
2、當第三個參數省略時,系統默認為’\0′
3、如果將例子中cin.getline()改為cin.getline(m,5,‘a’);當輸入jlkjkljkl時輸出jklj,輸入jkaljkljkl時,輸出jk
getline():
getline()函數是一個比較常見的函數。根據名字直接望文生義,就知道這個函數是來完成讀入一行數據。
getline是C++標準庫函數;但不是C標準庫函數,getline會生成一個包含一串從輸入流讀入的字符的字符串,直到以下情況發生會導致生成的此字符串結束。1)到文件結束,2)遇到函數的定界符,3)輸入達到最大限度。
用法:接收一個字符串,可以接收空格並輸出,需包含#include< cstring >
string str; getline(cin,str); cout<<str<<endl;
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkl jfksldfj jklsjfl
輸出:jkl jfksldfj jklsjfl
總結
到此這篇關於C++中cin.getline()和getline()函數區別的文章就介紹到這瞭,更多相關C++ cin.getline()和getline()函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- None Found