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
广告