C++ istream::get() 函式



C++ 的std::istream::get()函式用於從輸入流中讀取字元。它可以以多種模式執行:讀取單個字元、讀取字元到緩衝區直到遇到指定的定界符,或者讀取字元到指定大小的緩衝區。

預設情況下,此函式不會跳過空格,這使其與operator>>等函式有所區別。

語法

以下是 std::istream::get() 函式的語法。

int get();istream& get (char& c);
or
istream& get (char* s, streamsize n);istream& get (char* s, streamsize n, char delim);
or	
istream& get (streambuf& sb);istream& get (streambuf& sb, char delim);

引數

  • c - 表示儲存提取值的字元的引用。
  • s - 表示指向字元陣列的指標,提取的字元作為 C 字串儲存在此陣列中。
  • n - 表示寫入 s 的最大字元數(包括終止空字元)。
  • delim - 表示顯式定界符。
  • sb - 表示一個 basic_streambuf 物件,字元將複製到其控制的輸出序列上。

返回值

此函式返回讀取的字元,或者如果流中沒有字元可用則返回檔案結束值 (traits_type::eof())(請注意,在這種情況下,還會設定 failbit 標誌)。

異常

如果丟擲異常,則物件處於有效狀態。

資料競爭

修改 c、sb 或 s 指向的陣列中的元素,並修改流物件。

示例

在下面的示例中,我們將讀取單個字元。

#include <iostream>
int main()
{
    char x;
    std::cout << "Enter A Character : ";
    std::cin.get(x);
    std::cout << "Entered Character : " << x << std::endl;
    return 0;
}

輸出

以上程式碼的輸出如下:

Enter A Character : B
Entered Character : B

示例

考慮以下示例,我們將使用 get() 從輸入流中讀取字元,直到遇到定界符。

#include <iostream>
int main()
{
    char a[10];
    std::cout << "Enter Input : ";
    std::cin.get(a, 10, ',');
    std::cout << "Entered Input : " << a << std::endl;
    return 0;
}

輸出

以下是以上程式碼的輸出:

Enter Input : Hello, Namaste!
Entered Input : Hello
istream.htm
廣告