cin,cin.get()和cin.getline()的區別

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讀取時,一開始就遇到結果標誌符,因爲第三行爲空.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章