Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
14.11.2008, 23:17 | #1 |
Неактивный пользователь
Регистрация: 14.11.2008
Сообщений: 1
Репутация: 0
|
Как прочитать числа из бин-файла?
Ессть бин файл с вещественными числами. Как их оттуда прочитать по одному?
|
Реклама: | Хорошее предложение в KNS на взять ноутбук в кредит - более 50-ти тысяч наименований товаров со склада в Москве | зубные коронки из циркония | изготовление рекламных вывесок в москве | Conecte SalesDrive a Zoho Meeting | Google Drive и Miro |
15.11.2008, 05:40 | #2 |
Re: Как прочитать числа из бин-файла?
fRead() , позволяет читать данные бинарным способом. Для этого файл должен быть открыт с параметром "rb" в fopen. double и float если не ошибусь занимают 8 и 4 байта соответственно.
Тоесть вы сможете как источник подставить float* и прочесть данные по 4 байта в этот массив. Но есть одна проблема - количество этих чисел - его нужно знать заранее, но это будет не проблема если узнаете размер файла...
__________________
Проблема есть следствие ее решения... Чем больше я узнаю, тем больше чувствую себя дураком. |
|
17.11.2008, 10:33 | #3 |
Постоялец
Пол: Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Re: Как прочитать числа из бин-файла?
Код:
FILE *f=fopen("mydata.bin","rb"); double x[1000]; i=0; while( i<1000 && (fread(&x[i],sizeof(double),1,f)!=0)) i++; fclose(f);
__________________
Сергей Сергеевич |
Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
18.11.2008, 14:06 | #4 | |||||||||||||||||||||||
Пользователь
Пол: Регистрация: 27.02.2008
Адрес: Днепропетровск, Украина
Сообщений: 149
Репутация: 802
|
Re: Как прочитать числа из бин-файла?
вообще то в стандартной библиотеке для этого существует vector<double> Код:
typedef vector<double> VecDouble; VecDouble array; FILE *f=fopen("mydata.bin","rb"); double x=0.0; while( fread(&x,sizeof(double),1,f)!=0) array.push_back(x); fclose(f); |
|||||||||||||||||||||||
19.11.2008, 21:53 | #5 |
Постоялец
Пол: Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Re: Как прочитать числа из бин-файла?
Автор не задавал вопрос о способе размещения прочитанных данных.
Задача была прочитать числа по одному. Кстати, ему уже похоже данная тема по барабану.
__________________
Сергей Сергеевич |
19.11.2008, 22:35 | #6 | |||||||||||||||||||||||
Пользователь
Пол: Регистрация: 27.02.2008
Адрес: Днепропетровск, Украина
Сообщений: 149
Репутация: 802
|
Re: Как прочитать числа из бин-файла?
автор нуб. а как опредилить профпринадлежность человека который пишит подобный код и приводит его в ответе? Сантехник? Столяр? Дворник? Не программист - это точно. |
|||||||||||||||||||||||
Сказали спасибо: |
22.11.2008, 17:58 | #7 | |||||||||||||||||||
Постоялец
Пол: Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Re: Как прочитать числа из бин-файла?
Как Вы думаете, много ли начинающих программистов понимают, что эта строка означает? Мое мнение, что пока человек не научился работать с простыми массивами, ему не стоит браться за темплейты и контейнеры.
__________________
Сергей Сергеевич Последний раз редактировалось zss; 22.11.2008 в 18:01.. |
|||||||||||||||||||
22.11.2008, 19:10 | #8 | ||||||||||||||||||||||||||||||||||||||||||||||
Пользователь
Пол: Регистрация: 27.02.2008
Адрес: Днепропетровск, Украина
Сообщений: 149
Репутация: 802
|
Re: Как прочитать числа из бин-файла?
Может быть я конечно резко выразился - но в данном случае подобное использование массива, вряд ли свидетельствует о том что программист "научился работать". Это не просто плохой стиль программирования - на любом собеседовании в серьезные компании даже на должность юниора за подобный код вы получите низший бал - потому что ваш код по сути решает задачу в очень ограниченном объеме. Или я не прав?
это базовые основы языка - почему вы считаете что определение "начинающий" позволяет этого не знать?
объект вектор является частью стандартной библиотеки языка - и как раз предназначен для использования в подобных ситуациях. Чем отличается ваше использование "простого массива" и в чем "не простота" использования вектора? В данном случае мы не получаем никакого выигрыша от использования простого массива - но в полной мере получаем все его проблемы. В чем я не прав, и почему должно быть разделение - начинающим - массивы, продвинутым - контейнеры и шаблоны? |
||||||||||||||||||||||||||||||||||||||||||||||
Сказали спасибо: |
23.11.2008, 20:07 | #9 |
Постоялец
Пол: Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Re: Как прочитать числа из бин-файла?
Дело не в выигрыше. А в том, что контейнеры, это объекты.
Соответственно, чтобы их сознательно использовать, надо изучить всю технологию объектно ориентированного программирования. В рамках УЧЕБНОГО примера, который мы с Вами обсуждаем, совершенно незачем переходить к ООП. Обратите внимание, что, как правило, учебные примеры весьма далеки от кода, который потом реально пишется.
__________________
Сергей Сергеевич |
23.11.2008, 21:02 | #10 | ||||||||||||||||||||||||||||||||||||||||||||||
Пользователь
Пол: Регистрация: 27.02.2008
Адрес: Днепропетровск, Украина
Сообщений: 149
Репутация: 802
|
Re: Как прочитать числа из бин-файла?
Здесь я с вами не согласен. Как такового ООП здесь нет и не предвидеться. Использование объектов - еще не объектно-ориентированное программирование. И для использования объектов из набора стандартной библиотеки С++ вовсе нет особой необходимости быть специалистом в ООП - достаточно просто знать что они есть. Вы кстати в пылу спора сами себе начали противоречить - использовать дескриптор файла (указатель на объект файлового потока) из стандартной библиотеки ввода-вывода начинающий может использовать, а такой же объект из стандартной библиотеки шаблонов - ему почему-то надо изучить всю технологию ООП (Кстати и вы и я допустили грубую ошибку в коде - оба используем дескриптор не проверив его - это так, к слову). Добавлено через 9 минут
как раз после такого "учебного" кода, и пишется зачастую "индийский код". Чесслово, не в обиду. Последний раз редактировалось k0t_; 23.11.2008 в 21:11.. Причина: Добавлено сообщение |
||||||||||||||||||||||||||||||||||||||||||||||
Сказали спасибо: |
24.11.2008, 09:10 | #11 |
Постоялец
Пол: Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Re: Как прочитать числа из бин-файла?
Без дескриптора файла не обойтись,
его в данном примере надо как-то читать. В принципе, наше обсуждение здесь довольно бессмысленное, поскольку вряд ли Вам понадобится учить программированию людей, которые полные чайники.
__________________
Сергей Сергеевич |
24.11.2008, 10:19 | #12 |
Пользователь
Пол: Регистрация: 27.02.2008
Адрес: Днепропетровск, Украина
Сообщений: 149
Репутация: 802
|
Re: Как прочитать числа из бин-файла?
Учить полных чайников не сложно - гораздо сложнее потом переучивать. Дурные привычки приобретаются легко. Исчезают трудно.
|
Сказали спасибо: |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Из числа в текст. Excel. | mrpleasure | МOffice, Переводчики (словари), Органайзеры, Текстовые редакторы | 9 | 19.03.2014 11:08 |
комплексные числа | BFTFenix | Visual C++ / С/C++ | 15 | 05.02.2011 10:48 |
Перевод из двоичного числа в десятичное | Crosslive | Программирование | 2 | 22.10.2007 13:22 |
|
|