C++ streambuf::in_avail() 函数



C++ 的std::streambuf::in_avail()函数用于确定输入缓冲区中可读取的字符数量,而无需阻塞。它返回一个整数值,指示准备好立即使用的字符数量。

语法

以下是 std::streambuf::in_avail() 函数的语法。

streamsize in_avail();

参数

它不接受任何参数。

返回值

此函数返回可读取的字符数量。

异常

如果抛出异常,则流缓冲区处于有效状态。

数据竞争

成员函数可能会修改流缓冲区对象。

示例 1

在以下示例中,我们将考虑 in_avail() 函数的基本用法。

#include <iostream>
#include <streambuf>
#include <sstream>
int main() {
   std::string x = "Welcome";
   std::stringbuf buffer(x);
   std::cout << "Result : " << buffer.in_avail() << std::endl;
   return 0;
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Result : 7

示例 2

考虑以下示例,我们将对空缓冲区使用 in_avail()。

#include <iostream>
#include <sstream>
int main() {
   std::stringbuf a;
   std::streamsize b = a.in_avail();
   std::cout << "Result : " << b << std::endl;
   return 0;
}

输出

以下是上述代码的输出:

Result : 0

示例 3

让我们看一下以下示例,我们将使用 pubseekpos() 以及 in_avail() 函数。

#include <iostream>
#include <sstream>
int main() {
   std::stringbuf a("TutorialsPoint");
   a.pubseekpos(3);
   std::streamsize b = a.in_avail();
   std::cout << "Result : " << b << std::endl;
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出:

Result : 11
streambuf.htm
广告

© . All rights reserved.