cin<<的結束符有enter space tab
cin.get()的結束符只有enter,但會把enter放入隊列等待,遇到結束標誌字符後,最後指針指向結束標誌字符.
cin.getline()的結束符也只有enter,但不會把enter放入隊列,指向結束標誌符後一個字符;
比如:
#include<iostream>
using namespace std;
int main()
{
char ch[20];
cin>>ch;
cout<<ch<<endl;
cin.getline(ch,20,'/');
cout<<ch<<endl;
cin.getline(ch,20,'/');
cout<<ch<<endl;
return 0;
}
輸入:i like c++./i study c++./i am happy.回車
輸出結果爲:
i
_like c++. //_表示空格
i study c++.
因此<C++程序設計>這本書中,就錯了.
如果把第一個cin.getline改爲cin.get,
結果爲:
i
_like c++. //_表示空格
//這行爲空
可以看到,第三行爲空,因爲使用cin.get以後,字符指針指向結束標誌字符,當用cin.getline讀取時,一開始就遇到結果標誌符,因爲第三行爲空.