std::basic_istream::read
From cppreference.com
< cpp | io | basic istream
| basic_istream& read( char_type* s, std::streamsize count ); |
||
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:
-
countcharacters were extracted and stored
- end of file condition occurs on the input sequence (in which case, setstate(failbit|eofbit) is called. The number of successfully extracted characters can be queried using gcount().
Contents |
[edit] Parameters
| s | - | pointer to the character array to store the characters to |
| count | - | number of characters to read |
[edit] Return value
*this
[edit] Exceptions
If an internal operation throws an exception, it is caught and badbit is set. If exceptions() is set for badbit, the exception is rethrown.
[edit] Example
Run this code
#include <iostream> #include <fstream> #include <sstream> #include <string> #include <cstdint> 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; raw.read(reinterpret_cast<char*>(&n), sizeof n); std::cout << std::hex << std::showbase << n << '\n'; // prepare file for next snippet std::ofstream os("test.txt", std::ofstream::binary); for (unsigned i = 0; i < 10; i++) { // prepare stream os << "abcd" << i << "\n"; } os.close(); // read entire file into string std::ifstream is("test.txt", std::ifstream::binary); if (is) { // get length of file: is.seekg(0, is.end); int length = is.tellg(); is.seekg(0, is.beg); std::string str; str.resize(length, ' '); // reserve space char* begin = &*str.begin(); is.read(begin, length); is.close(); std::cout << str << "\n"; } else { std::cout << "Could not open test.txt\n"; } }
Output:
0x12121212 abcd0 abcd1 abcd2 abcd3 abcd4 abcd5 abcd6 abcd7 abcd8 abcd9
[edit] See also
| inserts blocks of characters (public member function of std::basic_ostream)
| |
| extracts formatted data (public member function) | |
| extracts already available blocks of characters (public member function) | |
| extracts characters (public member function) | |
| extracts characters until the given character is found (public member function) | |
| reads from a file (function) |