C++ basic_ios 库 - 阅读


描述

它用于从流中提取n个字符并将它们存储到s指向的数组中。

宣言

以下是 std::basic_istream::read 的声明。

basic_istream& read (char_type* s, streamsize n);

参数

  • n - 写入 s 的最大字符数(包括终止空字符)。

  • s - 指向存储提取的字符的数组的指针。

返回值

返回 basic_istream 对象 (*this)。

例外情况

基本保证- 如果抛出异常,则对象处于有效状态。

数据竞赛

修改 s 指向的数组和流对象中的元素。

例子

在下面的 std::basic_istream::read 示例中。

#include <iostream>     
#include <fstream>      

int main () {

   std::ifstream is ("test.txt", std::ifstream::binary);
   if (is) {
    
      is.seekg (0, is.end);
      int length = is.tellg();
      is.seekg (0, is.beg);

      char * buffer = new char [length];

      std::cout << "Reading " << length << " characters... ";
    
      is.read (buffer,length);

      if (is)
         std::cout << "all characters read successfully.";
      else
         std::cout << "error: only " << is.gcount() << " could be read";
      is.close();

    

      delete[] buffer;
   }
   return 0;
}

输出应该是这样的 -

Reading 640 characters... all characters read successfully.
istream.htm