Однако оператор static_cast<char *> в этом случае не подходит, потому что преобразование указателя на int в указатель на char компилятор считает опасным и просто отказывается это делать. Вот для таких рискованных трансформаций и предназначен оператор reinterpret_cast<>().
#include <fstream> #include <iostream> using namespace std: int main() { int i = 1234567, j = 0: fstream f; f.open("test", ios::out); f.close(); f.open("test", ios::in | ios::out | ios::binary); f.write(reinterpret_cast<char*>(&i), sizeof(i)); f.seekg(-sizeof(int), ios::cur); f.read(reinterpret_cast<char*>(&j), sizeof(int)); cout << j << endl; f.close(); }
OZON.ru - Книги | Самоучитель С++ | Александр Крупник | Самоучитель | Купить книги: интернет-магазин / ISBN 5-469-00468-6 |