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都相同。