
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ streambuf::in_avail() function
The C++ std::streambuf::in_avail() function is used to determine the number of characters available in the input buffer that can be read without blocking. It returns an integer value indicating the number of characters ready for immediate consumption.
Syntax
Following is the syntax for std::streambuf::in_avail() function.
streamsize in_avail();
Parameters
It does not accept any parameter.
Return Value
This function returns the number of characters available to read.
Exceptions
If an exception is thrown, the stream buffer is in a valid state.
Data races
The member function may modify the stream buffer object.
Example 1
In the following example, we are going to consider the basic usage of the in_avail() function.
#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; }
Output
Let us compile and run the above program, this will produce the following result −
Result : 7
Example 2
Consider the following example, where we are going to use the in_avail() on the empty buffer.
#include <iostream> #include <sstream> int main() { std::stringbuf a; std::streamsize b = a.in_avail(); std::cout << "Result : " << b << std::endl; return 0; }
Output
Following is the output of the above code −
Result : 0
Example 3
Let's look at the following example, where we are going to use the pubseekpos() along with the in_avail() function.
#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; }
Output
If we run the above code it will generate the following output −
Result : 11