
- 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::sgetn() function
The C++ std::streambuf::sgetn() function is used to extract a specified number of characters from the input sequence of a stream buffer and store them in the provided array.
This function reads up to the given number of characters, modifying the stream buffers internal position accordingly. It returns the number of characters successfully extracted.
Syntax
Following is the syntax for std::streambuf::sgetn() function.
streamsize sgetn (char_type* s, streamsize n);
Parameters
- s − It indicates the pointer ti an array where the character sequence is copied.
- n − It indicates the maximum number of characters to be retrieved.
Return Value
This function returns the number of characters copied.
Exceptions
If an exception is thrown, the stream buffer is in a valid state.
Data races
It modifies up to all of the first n characters in the array pointed by s.
Example 1
In the following example, we are going to consider the basic usage of the sgetn() function.
#include <iostream> #include <sstream> int main() { std::stringbuf a("Welcome"); char b[6] = { 0 }; a.sgetn(b, 5); std::cout << "Result : " << b << std::endl; return 0; }
Output
Output of the above code is as follows −
Result : Welco
Example 2
Consider the following example, where we are going to use the pubseekpos() along with the sgetn() function.
#include <iostream> #include <sstream> int main() { std::stringbuf a("ABCDE111223"); char b[6] = { 0 }; a.pubseekpos(4); a.sgetn(b, 4); std::cout << "Result : " << b << std::endl; return 0; }
Output
Following is the output of the above code −
Result : E111