чтение файла с помощью стандартной библиотеки

Все о программировании под *nix
monk
Интересующийся
Сообщения: 69
Зарегистрирован: 09 мар 2004, 14:45
Откуда: г. Минск
Контактная информация:

чтение файла с помощью стандартной библиотеки

Сообщение monk »

Когда я пишу:

int var1=0;

ifstream in("test", ios::in | ios::binary);

if(!in) {
...
}
in >> var1;

переменная var1 у меня возвращает "0".

Можно, конечно, через in.read((char*)&var1, sizeof(var1)), но
порядок следования байт при считывании меня тоже не устраивает - он переворачивает значение.

Как перегрузить оператор >> для целого и других типов?

Если нетрудно, приведите, пожалуйста, пример.

Аватара пользователя
exe
Неотъемлемая часть форума
Сообщения: 860
Зарегистрирован: 28 ноя 2003, 21:08
Откуда: Минск

Сообщение exe »

Для встроенных типов низзя. Сделай свой класс и перегружай.
Также сделай в классе оператор преобразования во встроенные
типы. А пример пиши сам, иначе без толку. Переворот значения
устрани при помощи сетевых макросов ntohs, htons, ntohl,htonl.
смотри /usr/include/arpa/inet.h

Ответить