C++中cin.getline()和getline()函數的區(qū)別小結
前言
C++輸入過程中,是把輸入加載到緩沖區(qū)中,然后對緩沖區(qū)中的字符進行讀取。cin,cin.get(),cin.getline()三個函數雖然都可以進行舒服讀取,但是它們對緩沖區(qū)內的數據處理方法是不同的(如遇到【space】、【enter】的處理方法)。本文簡單介紹cin.getline()和getline()函數的區(qū)別。
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、當第三個參數省略時,系統(tǒng)默認為'\0'
3、如果將例子中cin.getline()改為cin.getline(m,5,‘a');當輸入jlkjkljkl時輸出jklj,輸入jkaljkljkl時,輸出jk
getline():
getline()函數是一個比較常見的函數。根據名字直接望文生義,就知道這個函數是來完成讀入一行數據。
getline是C++標準庫函數;但不是C標準庫函數,getline會生成一個包含一串從輸入流讀入的字符的字符串,直到以下情況發(fā)生會導致生成的此字符串結束。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()函數區(qū)別的文章就介紹到這了,更多相關C++ cin.getline()和getline()函數內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Opencv基于CamShift算法實現(xiàn)目標跟蹤
這篇文章主要為大家詳細介紹了Opencv基于CamShift算法實現(xiàn)目標跟蹤,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01