Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2011, 18:32   #11
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

просто
1 препод ее уже видел!!!
2 я не могу прочитать данную прогу( от NiCola999 ) полностью и препод завалит!!!
3 как я сказал по условию задачи мне дан двоичный файл с датами!!!
JinAnton вне форума Ответить с цитированием
Старый 07.01.2011, 18:54   #12
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Двоичный файл это просто набор байтов (в общем случае любой файл является двоичным). Чтобы считать с него какую-то информацию, которая в нем хранится, нужно знать структуру этого файла, в каком блоке, что хранится. Не зная структуры файла нельзя что-либо с него считать.
Цитата:
мне дан двоичный файл с датами!!!
Что-то не сходится с тем что Вы написали:

Цитата:
Дан файл, содержащий сведения об исторических событиях : название события, число, месяц и год. Найти все события, произошедшие в данный промежуток времени. Границы промежутка задаются числом, месяцем и годом. Реализовать на двоичных файлах с помощью структур данных (struct).
Сначала нужно создать такой файл, пример я Вам показал

Последний раз редактировалось NiCola999; 07.01.2011 в 18:56.
NiCola999 вне форума Ответить с цитированием
Старый 08.01.2011, 02:05   #13
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

есть одна прграмма которая делает этот файл а вторая уже считывает с него мне нужно именно так, ваша прога написана так, как я бы ее в любом случае не написал мы этого еще не проходили например я не могу понять
eh->num = num;
eh->month = month;
eh->year = year;
что за eh

меня сразу завалят

плиз посмотрите пожалуйста мой код почему у меня от сыбытия name остоется первое слово(((

Последний раз редактировалось artemavd; 11.01.2011 в 16:34.
JinAnton вне форума Ответить с цитированием
Старый 08.01.2011, 22:17   #14
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

а у меня твоя прога работает, только что проверил, заменил только scanf_s на scanf


Цитата:
Создаётся база данных.

Число (или 0 для выхода): 10
Месяц : 2
Год : 2010
Событие: event1
Информация добавлена.

Число (или 0 для выхода): 30
Месяц : 2
Год : 2008
Событие: event2
Информация добавлена.

Число (или 0 для выхода): 3
Месяц : 5
Год : 2010
Событие: event3
Информация добавлена.

Число (или 0 для выхода):

Цитата:
Просматривается база данных'istoriya.dat':

10.2.2010: event1
30.2.2008: event2
3.5.2010: event3
Нажмите клавишу...

Последний раз редактировалось NiCola999; 08.01.2011 в 22:36.
NiCola999 вне форума Ответить с цитированием
Старый 09.01.2011, 17:50   #15
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

У меня тоже работает только от события остается только первое слово(((

Последний раз редактировалось JinAnton; 09.01.2011 в 17:54.
JinAnton вне форума Ответить с цитированием
Старый 09.01.2011, 20:13   #16
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

покажи свой ввод и вывод, как я сделал
NiCola999 вне форума Ответить с цитированием
Старый 09.01.2011, 20:24   #17
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

прикриплены картинки а этому сообщению
Изображения
Тип файла: jpg ввод.JPG (34.7 Кб, 9 просмотров)
Тип файла: jpg вывод.JPG (21.6 Кб, 9 просмотров)
JinAnton вне форума Ответить с цитированием
Старый 09.01.2011, 21:12   #18
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

дело в том, что scanf берет только то что идет до пробела. Вводить строку с пробелами надо либо fgets либо сл способом:
Код:
char ch;
int i=0;
while(ch != '\n'){  // пока не нажат ентер ( ввод закончен )
                    ch = getc(stdin); // получить символ с клавы
                    name[i++] = ch;   // положить его в строку
}
name[i] = '\0'; // символ конца строки
вставьте это вместо ввода name
Во избежание переполнения в строке рекомендую сделать константу типа MAX_SYMBOLS равную допустим 512, и при добавлении в строку нового символа проверять не стал ли i больше этой константы. Надеюсь ясно изложил

Последний раз редактировалось NiCola999; 09.01.2011 в 21:17.
NiCola999 вне форума Ответить с цитированием
Старый 09.01.2011, 23:47   #19
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

Да!!! Спасибо большое!!!! Может подскажешь как правильно ввести условия вывода по временному промежутку заданному пользователем в ввиде двух дат???
JinAnton вне форума Ответить с цитированием
Старый 10.01.2011, 00:21   #20
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
пробегаемся по массиву структур
пусть year - год в структуре, yeara, yearb - промежуток года
if( year >= yeara && year <= yearb){
   тут аналогичные условия для числа и месяца
}
NiCola999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлом.. dimorik Win Api 2 23.03.2010 21:26
Записать двоичным методом строку. Alex Cones Общие вопросы Delphi 9 09.03.2010 08:29
Обращение к двоичным файлам atenon Общие вопросы C/C++ 10 18.12.2009 11:21
Си++. работа с файлом milate Помощь студентам 0 08.06.2009 12:52
Работа с двоичным кодом lacost Общие вопросы Delphi 7 19.11.2008 10:38