C++ istream::readsome() 函式



C++ 的std::istream::readsome()函式用於從輸入流中讀取指定數量的字元到緩衝區中,不會阻塞。它最多讀取指定的限制數量或可用字元數量,取較小者。

與需要等待完全填充緩衝區的read()函式不同,readsome()函式會立即返回可用資料。

語法

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

streamsize readsome (char* s, streamsize n);

引數

  • s − 指向儲存提取字元的陣列的指標。
  • n − 要提取的最大字元數。

返回值

此函式返回儲存的字元數。

異常

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

資料競爭

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

示例

讓我們來看下面的例子,我們將考慮readsome()函式的基本用法。

#include <iostream>
#include <sstream>
int main()
{
    std::istringstream x("Tp, TutorialsPoint");
    char a[5];
    x.readsome(a, 4);
    a[5] = '\0';
    std::cout << "Result : " << a << std::endl;
    return 0;
}

輸出

以上程式碼的輸出如下:

Result : Tp, 

示例

考慮下面的例子,我們將從中讀取部分資料std::istringstream。

#include <iostream>
#include <sstream>
int main()
{
    std::istringstream a("Hello Namaste");
    char b[6];
    a.readsome(b, sizeof(b) - 1);
    b[a.gcount()] = '\0';
    std::cout << "First read: " << b << std::endl;
    a.readsome(b, sizeof(b) - 1);
    b[a.gcount()] = '\0';
    std::cout << "Second read: " << b << std::endl;
    return 0;
}

輸出

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

First read: Hello
Second read:  Nama
istream.htm
廣告
© . All rights reserved.