
- 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++ IOS::eof() function
The C++ std::ios::eof() function is used to check if the end-of-file (EOF) has been reached during input operations. This function returns a boolean value true if the EOF has been encountered, orelse it returns false.
Syntax
Following is the syntax for std::ios::eof() function.
bool eof() const;
Parameters
It does not accept any parameter.
Return Value
It returns true if the stream's eofbit error state flag is set (which signals that the End-of-File has been reached by the last input operation).
Exceptions
If an exception is thrown, there are no changes in the stream.
Data Races
Accesses the stream object.
Concurrent access to the same stream object may cause data races.
Example
Let's look at the following example, where we are going to read integers from input until the end of the input is reached.
#include <iostream> int main() { int x; std::cout << "Input : " << std::endl; while (std::cin >> x) { std::cout << "Input Entered : " << x << std::endl; } if (std::cin.eof()) { std::cout << "End Of Input Detected." << std::endl; } else { std::cout << "Error Occurred." << std::endl; } return 0; }
Output
Output of the above code is as follows −
Input : 1 2 3 Input Entered : 2 Input Entered : 3
Example
Consider the following example, where we are going to read either integers or words from input. In this case we are giving the wrong input and observing the output.
#include <iostream> #include <string> int main() { std::cout << "Input : " << std::endl; while (true) { int x; std::string y; if (std::cin >> x) { std::cout << "Entered Number: " << x << std::endl; } else if (std::cin >> y) { std::cout << "Entered word: " << y << std::endl; } else { break; } } if (std::cin.eof()) { std::cout << "End of input detected." << std::endl; } else { std::cout << "Error occurred." << std::endl; } return 0; }
Output
Following is the output of the above code −
Input : asde123 Error occurred.