
- 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++ istream::sync() function
The C++ std::istream::sync() function is used to synchronize the input stream with the associated input sequence. When this function is invoked, it clears the input buffer, ensuring that any unread characters are discarded and the stream is synchronized with the underlying input device.
Syntax
Following is the syntax for std::istream::sync() function.
int sync();
Parameters
It does not accept any parameter.
Return Value
If the function fails, either because no stream buffer object is associated to the stream (rdbuf is null), or because the call to its pubsync member fails, it returns -1.otherwise, it returns zero, indicating success.
Exceptions
If an exception is thrown, the object is in a valid state.
Data races
Modifies the stream object.
Example
In the following example, we are going to consider the basic usage of the sync() function.
#include <iostream> #include <sstream> int main() { std::istringstream a("Tutorials Point"); a.sync(); std::string b; a >> b; std::cout << "Result : " << b << std::endl; return 0; }
Output
Following is the output of the above code −
Result : Tutorials
Example
Consider the following example, where we are going to perform the synchronization with std::cin.
#include <iostream> int main() { std::cin.sync(); std::string a; std::cout << "Enter Input : "; std::cin >> a; std::cout << "Welcome To , " << a << "." << std::endl; return 0; }
Output
If we run the above code it will generate the following output −
Enter Input : TutorialsPoint Welcome To , TutorialsPoint.
Example
Let's look at the following example, where we are going to flush the std::cin buffer.
#include <iostream> #include <sstream> int main() { std::istringstream a("Hi 112"); std::string b; int x; a >> b; a.sync(); a >> x; std::cout << "Text: " << b << " , Number: " << x << std::endl; return 0; }
Output
Output of the above code is as follows −
Text: Hi , Number: 112