c++中字符輸入函數getline、cin.getline區分
阿新 • • 發佈:2017-06-27
不能 ng- 設置 alt pos art 結束 out 兩個
1、cin>>s; s能夠是:string s、char s[];
這個是ostream中的函數。遇到‘ ’(空格) , ‘\n‘(換行),就會自己主動結束,因此假設用cin讀取字符串,那麽這個字符串中不能含有空格和換行。
cin由於不識別空格和換行,因此假設在輸入字符串的時候,在字符開始處輸入了空格或換行,沒有不論什麽影響。
#include <iostream> #include <string> #include <stdio.h> using namespace std; int main() { string s; int n; while(cin>>s) { cout<<s<<endl; }
}
2、getline(cin , s , ‘\n‘) , s僅僅能是 string s
getline屬於string類的字符讀取函數。這個函數的第三個參數能夠不寫(getling(cin , s))。第三個參數默認是‘\0‘,這樣的情況下假設要結束一個字符串輸入。對於有些編譯器(VC , VS), 必須得連續輸入兩個換行。
對於getline(cin , s , ‘z‘) ,能識別空格和換行
對於getline僅僅要截止字符(第三個參數)設置得當。能讀取多行
#include <iostream> #include <string> #include <stdio.h> using namespace std; int main() { string s; int n; while(getline(cin , s , ‘z‘)) { cout<<s<<endl; }
}
3、cin.getline(s , 100 , ‘/n‘) 。 僅僅能是 char s[];
cin.getline屬於ostream 。 和getline類似,僅僅是僅僅能對char s[]類型進行讀取。除這點外,其它和getline都同樣。
c++中字符輸入函數getline、cin.getline區分