0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

istream的類方法?常用的istream的類方法有哪些?

冬至子 ? 來源:iDoitnow ? 作者:艱默 ? 2023-07-18 15:15 ? 次閱讀

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),并將其返回。

兩者的主要特性如下:

1.jpg

字符串輸入

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()

1.jpg

其使用方法如下:

//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;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7435

    瀏覽量

    163524
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    575

    瀏覽量

    20470
  • C++語言
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    6951
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用Python的? 優(yōu)勢哪些?

    其實(shí)例化,然后用實(shí)例代表,進(jìn)而調(diào)用中的方法處理數(shù)據(jù)。那么實(shí)例是怎么代表的呢?在定義及其方法
    發(fā)表于 07-30 18:08

    Python中的方法、實(shí)例方法和靜態(tài)方法

    Python中實(shí)例屬性和實(shí)例方法Python中類屬性和方法Python中調(diào)用方法
    發(fā)表于 11-05 06:25

    請問Python中的方法、實(shí)例方法和靜態(tài)方法是什么?

    Python中的方法、實(shí)例方法和靜態(tài)方法
    發(fā)表于 11-09 07:13

    python靜態(tài)方法方法

    python靜態(tài)方法方法1. 寫法上的差異類的方法可以分為:靜態(tài)方法 staticmet
    發(fā)表于 03-07 16:56

    基于數(shù)據(jù)連續(xù)性的聚方法

    為了解決數(shù)據(jù)遺漏問題,根據(jù)內(nèi)樣品均勻分布的性質(zhì)提出了一種新的聚方法,該方法僅對內(nèi)樣品均勻分布性敏感,不需要預(yù)先設(shè)置包括
    發(fā)表于 05-25 17:17 ?0次下載
    基于數(shù)據(jù)連續(xù)性的聚<b class='flag-5'>類</b><b class='flag-5'>方法</b>

    Java數(shù)組的常用方法_Java:數(shù)組工具Arrays常用方法的用法及代碼

    本文主要詳細(xì)介紹了Java數(shù)組的常用方法以及數(shù)組工具Arrays常用方法的用法及代碼。
    發(fā)表于 01-29 10:25 ?2905次閱讀

    數(shù)據(jù)挖掘的四方法

    本視頻主要詳細(xì)介紹了數(shù)據(jù)挖掘的四方法,分別是神經(jīng)網(wǎng)絡(luò)方法、遺傳算法、決策樹方法、粗集方法
    的頭像 發(fā)表于 04-10 16:40 ?1.4w次閱讀

    可提取非線性結(jié)構(gòu)的子空間聚方法

    聚類分析是機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘中的重要工具,而子空間聚是髙維數(shù)據(jù)分析中常用的聚方法?;谧V圖的子空間聚
    發(fā)表于 05-18 14:01 ?2次下載

    python靜態(tài)方法方法

    python靜態(tài)方法方法 1. 寫法上的差異 方法可以分為: 靜態(tài)方法
    的頭像 發(fā)表于 03-07 16:56 ?1543次閱讀

    Java中Arrays是什么 Arrays常用方法

    了解Arrays的概念 **A****rrays** 位于java.util包下,Arrays是一個(gè)操作數(shù)組的工具。 Arrays常用方法 Arrays.fill:
    的頭像 發(fā)表于 02-17 15:11 ?1010次閱讀
    Java中Arrays<b class='flag-5'>類</b>是什么 Arrays<b class='flag-5'>常用</b><b class='flag-5'>方法</b>

    子類中繼承父方法

    首先得在父中創(chuàng)建一個(gè)方法,利用創(chuàng)建的方法的格式void+方法名(){},然后在子類中調(diào)用這個(gè)方法:直接輸入
    的頭像 發(fā)表于 04-06 14:53 ?1322次閱讀
    子類中繼承父<b class='flag-5'>類</b>的<b class='flag-5'>方法</b>

    super調(diào)用父的構(gòu)造方法

    我們分析這句話“父對象的引用”,那說明我們使用的時(shí)候只能在子類中使用,既然是對象的引用,那么我們也可以用來調(diào)用成員屬性以及成員方法,當(dāng)然了,這里的 super 關(guān)鍵字還能夠調(diào)用父的構(gòu)造方法
    的頭像 發(fā)表于 10-10 16:42 ?858次閱讀
    super調(diào)用父<b class='flag-5'>類</b>的構(gòu)造<b class='flag-5'>方法</b>

    Object中的所有方法

    ,也就是說任何都直接或間接繼承此類,Object 中能訪問的方法在所有中都可以調(diào)用,下面我們會(huì)分別介紹Object 中的所有
    的頭像 發(fā)表于 10-13 11:50 ?485次閱讀
    Object<b class='flag-5'>類</b>中的所有<b class='flag-5'>方法</b>

    java抽象可以普通方法

    Java中的抽象可以普通方法,但它也可以抽象方法。抽象是一種中間狀態(tài),介于普通
    的頭像 發(fā)表于 11-21 10:22 ?1436次閱讀

    this可以出現(xiàn)在方法中嗎

    是的, this 關(guān)鍵字可以出現(xiàn)在方法中。在Java中, this 是一個(gè)引用,用于引用當(dāng)前對象的實(shí)例。它可以在的實(shí)例方法中使用,以訪問該實(shí)例的成員變量和
    的頭像 發(fā)表于 11-28 16:24 ?1286次閱讀