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.