1. istream的類方法
常用的istream的類方法有:
- 方法
get(char&)
和get(void)
提供不跳過空白的單字符輸入功能; - 函數(shù)
get(char*, int, char)
和getline(char*, int, char)
在默認(rèn)情況下讀取整行而不是一個(gè)單詞。
單字符輸入 :
在使用char參數(shù)或沒有參數(shù)的情況下,get()
方法讀取下一個(gè)輸入字符,即使該字符是空格、制表符或換行符。
get(char & ch)------該版本將輸入字符賦給其參數(shù),并返回調(diào)用對象(cin)。
get(void)-----------該版本將輸入字符轉(zhuǎn)換為整型(通常是int),并將其返回。
兩者的主要特性如下:
字符串輸入 :
getline()
成員函數(shù)和get()
的字符串讀取版本都讀取字符串,它們的函數(shù)特征標(biāo)相同(這是從更為通用的模板聲明簡化而來的):
istream & get(char *, int, char);
istream & get(char *, int);
istream & getline(char *, int, char);
istream & getline(char *, int);
【 注 :第一個(gè)參數(shù)是用于放置輸入字符串的內(nèi)存單元的地址。第二個(gè)參數(shù)比要讀取的最大字符數(shù)大1(額外的一個(gè)字符用于存儲(chǔ)結(jié)尾的空字符,以便將輸入存儲(chǔ)為一個(gè)字符串)。第3個(gè)參數(shù)指定用作分界符的字符,只有兩個(gè)參數(shù)的版本將換行符用作分界符。上述函數(shù)都在讀取最大數(shù)目的字符或遇到換行符后為止】
例如:
char line[50];
cin.get(line, 50);//cin.get( )函數(shù)將在到達(dá)第49個(gè)字符或遇到換行符(默認(rèn)情況)后停止將輸入讀取到數(shù)組中
【 注 :get()
和getline()
之間的主要區(qū)別在于,get()
將換行符留在輸入流中,這樣接下來的輸入操作首先看到的將是換行符,而getline()
抽取并丟棄輸入流中的換行符?!?/p>
如何忽略字符串中某些內(nèi)容呢?C++為我們提供了ignore( )
函數(shù),該函數(shù)的原型如下:
//第一個(gè)參數(shù)是一個(gè)數(shù)字,指定要讀取忽略的最大字符數(shù),默認(rèn)為1
//第二個(gè)參數(shù)是一個(gè)字符,用作輸入的分界符,默認(rèn)為EOF
istream & ignore(int = 1, int = EOF);
//eg:
if (ch != 'n') cin.ignore(255, 'n'); //可以用來忽略上次輸入流中殘余的字符串
2. 其他istream方法
除前面討論過的外,其他istream
方法包括read()
、peek()
、gcount()
和putback()
。
其使用方法如下:
//read()
char read_arr[100];
cin.read(read_arr, 100);//其返回值類型為istream &,可以這樣拼接使用:cin.read(read_arr, 10).read(read_arr + 10, 90);
//peek()
char input[100];
int i = 0;
while(cin.peek() != '.')
cin.get(input[i++]);
input[i]='?';
//gcount()
char arr[20];
istringstream stream("abc");
stream.read(arr, sizeof arr);
auto count = stream.gcount();//count = 3
//putback()
char c;
int n;
char str[256];
cout < < "Enter a number or a word: ";
c = cin.get();
if ((c >= '0') && (c <= '9')) {
cin.putback(c);
cin > > n;
cout < < "You have entered number " < < n < < endl;
} else {
cin.putback(c);
cin > > str;
cout < < " You have entered word " < < str < < endl;
}
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7435瀏覽量
163524 -
字符串
+關(guān)注
關(guān)注
1文章
575瀏覽量
20470 -
C++語言
+關(guān)注
關(guān)注
0文章
147瀏覽量
6951
發(fā)布評論請先 登錄
相關(guān)推薦
評論