get()函數是cin輸入流對象的成員函數,它有3種形式:無參數的,有一個參數的,有3個參數的。
1) 不帶參數的get函數
其調用形式為
cin.get()
用來從指定的輸入流中提取一個字符(包括空白字符),函數的返回值就是讀入的字符。 若遇到輸入流中的文件結束符,則函數值返回文件結束標志EOF(End Of File),一般以-1代表EOF,用-1而不用0或正值,是考慮到不與字符的ASCII代碼混淆,但不同的C ++系統所用的EOF值有可能不同。
#include <iostream>
using namespace std;
int main( )
{
int c;
cout<<"enter a sentence:"<<endl;
while((c=cin.get())!=EOF)
cout.put(c);
return 0;
}
2) 有一個參數的get函數
其調用形式為
cin.get(ch)
其作用是從輸入流中讀取一個字符,賦給字符變量ch。如果讀取成功則函數返回true(真),如失敗(遇文件結束符) 則函數返回false(假)。
#include <iostream>
using namespace std;
int main( )
{
char c;
cout<<"enter a sentence:"<<endl;
while(cin.get(c)) //讀取一個字符賦給字符變量c,如果讀取成功,cin.get(c)為真
{cout.put(c);}
cout<<"end"<<endl;
return 0;
}
3) 有3個參數的get函數
其調用形式為
cin.get(字符數組, 字符個數n, 終止字符)
或
cin.get(字符指針, 字符個數n, 終止字符)
其作用是從輸入流中讀取n-1個字符,賦給指定的字符數組(或字符指針指向的數組),如果在讀取n-1個字符之前遇到指定的終止字符,則提前結束讀取。如果讀取成功則函數返回true(真),如失敗(遇文件結束符) 則函數返回false(假)。再將例13.6改寫如下:
#include <iostream>
using namespace std;
int main( )
{
char ch[20];
cout<<"enter a sentence:"<<endl;
cin.get(ch,10,'x');//指定x為終止字符
cout<<ch<<endl;
return 0;
}
