C++ istream::read() 函式



C++ 的std::istream::read() 函式用於從輸入流中讀取指定數量的字元到緩衝區中。它通常用於二進位制輸入操作。此函式接受兩個引數:一個指向儲存資料的緩衝區的指標和要讀取的字元數。

語法

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

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

引數

  • n - 表示要提取的字元數。
  • s - 表示指向儲存提取字元的陣列的指標。

返回值

此函式返回 basic_istream 物件(*this)。

異常

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

資料競爭

修改 s 指向的陣列中的元素和流物件。

示例

在以下示例中,我們將考慮 read() 函式的基本用法。

#include <iostream>
#include <sstream>
int main()
{
    std::istringstream a("Hi, Namaste");
    char b[6];
    a.read(b, 2);
    b[2] = '\0';
    std::cout << "Result : " << b << std::endl;
    return 0;
}

輸出

以下是上述程式碼的輸出 -

Result : Hi

示例

考慮以下示例,我們將從整數流中讀取 4 位元組整數。

#include <iostream>
#include <sstream>
int main()
{
    std::istringstream x("\x11\x10\x00\01");
    int a;
    x.read(reinterpret_cast<char*>(&a), sizeof(a));
    std::cout << "Result : " << a << std::endl;
    return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出 -

Result : 4113
istream.htm
廣告