輸入流類 istream 常用成員函式

2021-07-11 05:14:42 字數 2406 閱讀 8061

c++標準庫里有針對外設輸入操作進行處理的類——istream。而常用的cin則是istream的類物件。因此實際上我們可以重新定義新的輸入流物件代替cin對輸入進行操作。而我們常用的istream類成員函式有如下一些:

原型:istream& getline (char* s, streamsize n, char delim )

提取一行的字串,s 是儲存資料的變數的名字,n為輸入資料的長度,delim為結束的標誌字元(遇到就結束,不理會資料有多長,可以不要)

char name[256];

std::cout

<< "please, enter your name: ";

std::cin.getline (name,256);

std::cout

<< "hell0, "

<< name;

note: cin.getline()與getline()是不同的, getline()的原型是istream& getline ( istream &is , string &str , char delim ),使用前必須包含標頭檔案,其使用例子如下(同樣,delim可不寫,則預設為回車結束):
string line;

cout

<< "please cin a line:"

<< endl;

getline(cin,line,'#');

cout

<< "the input line is:"

<< line;

原型:istream& ignore (streamsize n = 1, int delim = eof)

忽略輸入流中的n個字元,或者當遇到輸入流中有乙個值等於delim時停止忽略並返回。

cin >> first;

cin.ignore(256, '\0');

cin >> last;

cout << endl << first

<< endl << last

<< endl;

get()的主要函式原型有以下三種:

1). int get();

從指定的輸入流中讀入乙個字元(包括空白字元);遇到輸入流中的檔案結束符時,此get函式返回eof;

char ch;

ch = cin.get();

cout

<< ch << endl;

2). istream& get (char& c);

從輸入流讀取乙個字元(包括空白字元),並將其儲存在字元變數 c 中。事實上get(char& c)與get( )作用基本相同;

char ch;

cin.get(ch);

cout

<< ch << endl;

3). istream& get (char* s, streamsize n, char delim = 『\n』);

從輸入流中讀取n-1個字元,存於字元指標 s指向的記憶體。如果在讀取n-1個字元之前遇到指定的終止字元delim,則提前結束讀取。程式會自動在字串最後增加乙個』\0』表示結束;

char *s;

cin.get(s, 18, '\#');

if(s[17] == '\0')

cout

<< s << endl;

char s[20], ch;

intcount=0;

while(cin.get(ch))

原型:istream& putback (char c);

把乙個字元放回輸入流當中;可用於檢查用get()確定資料的開頭後將其放回然後再操作。

原型:istream& read (char* s, streamsize n);

該函式只是純粹的提取輸入流的n長度的資料段並儲存在s中,它不會檢查s的內容也不會在末尾增加null字元(『\0』)。如果提取過程中失敗,s儲存之前提取的內容,且eofbit以及failbit置1。

原型:streamsize gcount() const;

統計最後一次非正規操作讀取的字元數,非正規操作(即除》外其他讀入輸入流資料的操作,如:get, getline, ignore, peek, read, readsome, putback and unget等);

char str[20];

cout

<< "please, enter a word: ";

cin.getline(str,20);

cout

<< cin.gcount() << " characters read:"

<< str << '\n';

C 中輸入流istream狀態管理3

在 c 中輸入流istream狀態管理2 中提到,rdstate 成員函式可以獲取流當前的狀態,即ios base iostate。ios base iostate對應的狀態有ios base goodbit ios base eofbit ios base badbit和ios base fail...

istream類的公有成員函式

1 eatwhite 2 get 3 getline 4 gcount 5 ignore 6 operator 7 peek 8 read 9 seekg 10 tellg 1 eatwhite 忽略前導空格 2 gcount 統計最後輸入的字元個數 3 get 從流中提取字元,包括空格 std c...

istream類的一些成員函式

呼叫方法 cin.getline 字元陣列 或字元指標 字元個數n,終止標誌字元 預設是以 n 為終止標字元,即終止標誌字元可以不寫。特別注意 用getline函式從輸入流讀字元時,遇到終止標誌字元時結束,指標移到該終止標誌字元之後,下乙個getline函式將該終止標誌的下乙個字元開始接著讀入,如果...