Форум программистов, компьютерный форум CyberForum.ru

Возможно ли целочисленную переменную записать в файл как целочисленную, а не её символьное представление? - C++

Восстановить пароль Регистрация
 
jorik567
1 / 1 / 0
Регистрация: 23.06.2013
Сообщений: 13
04.08.2013, 18:24     Возможно ли целочисленную переменную записать в файл как целочисленную, а не её символьное представление? #1
Возможно при помощи operator<< переменную типа int записать в файл как int, а не её символьное представление?

речь идёт о сохранении в файл и чтении из него.
если я правильно понял, то этот оператор реализован в виде шаблона, параметрами которого являются char. для всех стандартных типов происходит преобразование в символьное представление и потом запись. Именно по этому результатом следующего кода
C++
1
2
3
4
5
int i = 10;
int j = 20;
ofstream fout("qqq.www");
fout << i << j;
fout.close;
будет файл размером 4 байта вместо положенных 8. и если открыть его то содержимое : 1020
так что если теперь считать, например так
C++
1
2
3
4
int k = 0;
int m = 0;
ifstream fileIN("qqq.www");
fileIN >> k >> m;
то получим k==1020 а m==0.
пробовал открывать файл так
C++
1
ofstream fout("qqq.www", ios::binary);
результат тот же.
вопрос решился только если использовать write для файла, открытого с ios::binary
C++
1
2
3
4
5
6
int i = 10;
int j = 20;
ofstream fout("qqq.www", ios::binary);
fout.write((char*)&i, sizeof i);
fout.write((char*)&j, sizeof j);
fout.close;
читать соответственно можно аналогично, при помощи read...
особо тоскливо когда надо записать в файл объект имеющий динамический массив.
Перегрузив operator<< и operator>> получил в принципе компактное применение, но в перегрузке оператора всё равно приходится использовать огромные записи read и write

обрадовался когда увидел заголовки статей по сериализации. Но посмотреть не получилось - пишет ошибка 404.

Возможно ли более простое решение ? помогите чайнику не захлебнуться!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2013, 18:24     Возможно ли целочисленную переменную записать в файл как целочисленную, а не её символьное представление?
Посмотрите здесь:

C++ Как возвести число в целочисленную степень и взять корень N-ной степени?
Преобразование символьной переменной в целочисленную C++
Получить целочисленную матрицу C++
Как доделать длинную целочисленную арифметику? C++
C++ перевести дробную часть в целочисленную
C++ Получить целочисленную матрицу
Сформировать целочисленную прямоугольную матрицу C++
C++ Получить целочисленную матрицу

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.08.2013, 18:47     Возможно ли целочисленную переменную записать в файл как целочисленную, а не её символьное представление? #2
вставь разделитель между числами, например пробел
jorik567
1 / 1 / 0
Регистрация: 23.06.2013
Сообщений: 13
04.08.2013, 19:41  [ТС]     Возможно ли целочисленную переменную записать в файл как целочисленную, а не её символьное представление? #3
Jupiter, спасибо. Помогло!
Yandex
Объявления
04.08.2013, 19:41     Возможно ли целочисленную переменную записать в файл как целочисленную, а не её символьное представление?
Ответ Создать тему
Опции темы

Текущее время: 23:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru