
- 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::sbumpc() function
The C++ std::streambuf::sbumpc() function is used to extract and return the next character from the input sequence, advancing the input pointer to the subsequent character. If the input sequence is empty, it returns trauts_type::eof(), indicating the end of the file or stream.
Syntax
Following is the syntax for std::streambuf::sbumpc() function.
int_type sbumpc();
Parameters
It does not accept any parameter.
Return Value
It returns the character at the current position of the controlled input sequence before the call, converted to a value of type int_type using member traits_type::to_int_type.
Exceptions
If an exception is thrown, the stream buffer is in a valid state.
Data races
It modifies the stream buffer object.
Example 1
In the following example, we are going to consider the basic usage of the sbumpc() function.
#include <iostream> #include <sstream> int main() { std::stringstream a("Welcome"); std::streambuf * b = a.rdbuf(); char c; while ((c = b -> sbumpc()) != EOF) { std::cout << c << ' '; } return 0; }
Output
Output of the above code is as follows −
W e l c o m e
Example 2
Consider the following example, where we are going to use the sbumpc() function to count the total no of characters.
#include <iostream> #include <sstream> int main() { std::istringstream x("Tutorialspoint"); std::streambuf * y = x.rdbuf(); int z = 0; while (y -> sbumpc() != std::char_traits < char > ::eof()) { z++; } std::cout << "Result : " << z << std::endl; return 0; }
Output
Following is the output of the above code −
Result : 14
Example 3
Let's look at the following example, where we are going to skip the initial 11 characters from the input sequence and printing the remaining characters.
#include <iostream> #include <sstream> int main() { std::istringstream x("Welcome To TutorialsPoint"); std::streambuf * y = x.rdbuf(); for (int a = 0; a < 11; ++a) { y -> sbumpc(); } char z; while ((z = y -> sbumpc()) != std::char_traits < char > ::eof()) { std::cout << z; } return 0; }
Output
If we run the above code it will generate the following output −
TutorialsPoint