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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jorik567
1 / 1 / 0
Регистрация: 23.06.2013
Сообщений: 13
#1

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

04.08.2013, 18:24. Просмотров 407. Ответов 2
Метки нет (Все метки)

Возможно при помощи 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++):

Как доделать длинную целочисленную арифметику? - C++
Операторы: сравнения присваивания, сложения, вычитания, левого и правого сдвига, деления, остатка, умножения, приведения к обычному целому,...

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

Получить целочисленную матрицу - C++
Нужна помощь в решении задания на С++. Искал в поиске и на форуме, находил подобные вопросы, но не находил ответа.Спасибо кто отозвался ...

Получить целочисленную матрицу - C++
Доброго времени суток, прощу помощи не могу понять тему про матрицы... Сильно не кричите:) Получить целочисленную матрицу Aij i=1...5...

Получить целочисленную матрицу - C++
Задание ниже: Nastik23, оформите тему в соответствии с правилами форума: текстовые задания набирайте от руки

Транспонировать целочисленную матрицу 5x5 - C++
транспонировать целочисленную матрицу 5x5.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 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, спасибо. Помогло!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2013, 19:41
Привет! Вот еще темы с ответами:

Получить целочисленную матрицу по правилу - C++
Здраствуйте! Задача такова: Даны целые числа а1, а2, а3. Получить целочисленную матрицу i,j=1,2,3, для которой bij=ai-3aj. Я думал что...

Перевести дробную часть в целочисленную - C++
из числа 0.131313 должно получиться 131313 Чего бы такого придумать ?

Возвести матрицу в целочисленную степень - C++
Каким образом можно возвести двумерный массив (т. е. матрицу) в целочисленную степень?Например for(int i=0;i&lt;4;i++) D=D^i;

Сформировать целочисленную прямоугольную матрицу - C++
Сформировать целочисленную прямоугольную матрицу A(m,m) следующего вида: 1 2 3 .. m 0 1 2 .. m-1 0 0 1 .. m-2 . . . . . . ....


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru