Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Учимся программировать
>
Начинающим
(Модератор:
Sla
) > Тема:
[C++] Вывод в файл
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [C++] Вывод в файл (Прочитано 5327 раз)
0 Пользователей и 1 Гость смотрят эту тему.
The Nameless One
Помогающий
Offline
Пол:
[C++] Вывод в файл
«
:
18-08-2009 10:21 »
Привет:)
Вывожу в файл массив вещественных чисел так:
Код:
#include <fstream>
using namespace std;
int main()
{
ofstream file("Text.txt", ios::out);
float F[]={45.6f, 632.36f, 1141.1f, 414.f, 12490.1240f};
for(int g=0; g<sizeof(F)/sizeof(float); g++) file.write((char*)F, sizeof(F));
file.close();
return 0;
}
В результате в фале такая милиберда:
Цитата
ff6B
D3ЈЋD ПC(CFff6B
D3ЈЋD ПC(CFff6B
D3ЈЋD ПC(CFff6B
D3ЈЋD ПC(CFff6B
D3ЈЋD ПC(CF
Что я не так делаю?
Записан
Вад
Команда клуба
Offline
Пол:
Re: [C++] Вывод в файл
«
Ответ #1 :
18-08-2009 11:00 »
Выводить пытаешься числа, но зачем-то делаешь это через write, приводя к последовательности символов. float - это ни разу не последовательность символов (точнее, это будет очень плохая последовательность символов, состоящая из мусора). Массив float-ов, соответственно, тоже.
Попробуй
Код:
for (int i = 0; i < sizeof(F)/sizeof(float); ++i)
file << F[i] << endl;
Для начала. Форматирование значений - несколько отдельная тема.
«
Последнее редактирование: 18-08-2009 11:05 от Вад
»
Записан
Dimka
Деятель
Команда клуба
Offline
Пол:
Re: [C++] Вывод в файл
«
Ответ #2 :
18-08-2009 11:10 »
The Nameless One
, получается двойчный файл, в котором числа хранятся в их двоичном представлении как последовательность байтов.
Обратно их можно прочитать с помощью read.
Записан
Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Вад
Команда клуба
Offline
Пол:
Re: [C++] Вывод в файл
«
Ответ #3 :
18-08-2009 11:15 »
Кстати, да
Что-то я с текстовыми файлами заработался
Но если нужен бинарный файл - его нужно и открывать в бинарном режиме. То есть, открывать с флагом ios_base::binary, если мне память не изменяет. По умолчанию режим текстовый. И цикл для записи тогда не нужен - и так в один присест весь массив записывается: file.write((char*)F, sizeof(F)).
«
Последнее редактирование: 18-08-2009 11:16 от Вад
»
Записан
The Nameless One
Помогающий
Offline
Пол:
Re: [C++] Вывод в файл
«
Ответ #4 :
18-08-2009 11:32 »
Спасибо - разобрался!
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Учимся программировать
>
Начинающим
(Модератор:
Sla
) > Тема:
[C++] Вывод в файл
Загружается...