Extracts characters from stream.
Behaves as UnformattedInputFunction. After constructing and checking the sentry object, extracts characters and stores them into successive locations of the character array whose first element is pointed to by s. Characters are extracted and stored until any of the following conditions occurs:
*this
[edit] Exceptionsfailureif an error occurred (the error state flag is not
goodbit) and
exceptions()is set to throw for that state.
If an internal operation throws an exception, it is caught and badbit is set. If exceptions() is set for badbit
, the exception is rethrown.
When using a non-converting locale (the default locale is non-converting), the overrider of this function in std::basic_ifstream may be optimized for zero-copy bulk I/O (by means of overriding std::streambuf::xsgetn).
[edit] Example#include <cstdint> #include <fstream> #include <iostream> #include <sstream> #include <string> int main() { // read() is often used for binary I/O std::string bin = {'\x12', '\x12', '\x12', '\x12'}; std::istringstream raw(bin); std::uint32_t n; if (raw.read(reinterpret_cast<char*>(&n), sizeof n)) std::cout << std::hex << std::showbase << n << '\n'; // prepare file for next snippet std::ofstream("test.txt", std::ios::binary) << "abcd1\nabcd2\nabcd3"; // read entire file into string if (std::ifstream is{"test.txt", std::ios::binary | std::ios::ate}) { auto size = is.tellg(); std::string str(size, '\0'); // construct string to stream size is.seekg(0); if (is.read(&str[0], size)) std::cout << str << '\n'; } }
Output:
0x12121212 abcd1 abcd2 abcd3[edit] See also inserts blocks of characters
std::basic_ostream<CharT,Traits>
) [edit] extracts formatted data
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4