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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2009, 17:49   #1
Сэм
Пользователь
 
Регистрация: 12.04.2009
Сообщений: 31
Восклицание Обработка бинарных файлов (Си)

Здравствуйте, люди добрые! У меня задание , используя функции и режим меню, создать файл из 10 структур, просмотреть его и добавить в него новую информацию, применяя режим прямого доступа, и внести в начало списка новую информацию. А структура имеет вид: фамилия, номер телефона и дата рождения. Прогу написать не прошу, сам справлюсь. У меня единственная просьба: как новую информацию добавить именно в начало списка! Заранее спасибо!
Сэм вне форума Ответить с цитированием
Старый 30.04.2009, 17:57   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
У меня единственная просьба: как новую информацию добавить именно в начало списка!
Ну, файл придется перезаписывать. Добавить в начало не получится.

Если вопрос касается именно списка, то это зависит от того, как он задан (односвязный, двусвязный)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.04.2009, 18:21   #3
Сэм
Пользователь
 
Регистрация: 12.04.2009
Сообщений: 31
По умолчанию

Я Вас понял, но в том то и дело, что задача поставлена именно так, как я процитировал. А возможно их (структуры) как-нибудь сдвигать?
Сэм вне форума Ответить с цитированием
Старый 30.04.2009, 18:26   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
А возможно их (структуры) как-нибудь сдвигать?
В файле - нет.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.04.2009, 18:52   #5
Сэм
Пользователь
 
Регистрация: 12.04.2009
Сообщений: 31
По умолчанию

Что-то тогда не пойму, что задали невыполнимую задачу? Или это провокация?
Сэм вне форума Ответить с цитированием
Старый 30.04.2009, 19:00   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Что-то тогда не пойму, что задали невыполнимую задачу? Или это провокация?
Да нет. Просто сначала считываете список из файла. Изменяете его, как вам надо. Потом перезаписываете файл.

Можно еще так попробовать:
Читаете первую запись. Пишите на ее место новую (которую нужно добавить). Потом читаете вторую запись. На ее место пишете первую. Читаете третью, на ее место вторую...и т.д.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 30.04.2009 в 19:03.
Sazary вне форума Ответить с цитированием
Старый 30.04.2009, 19:33   #7
Сэм
Пользователь
 
Регистрация: 12.04.2009
Сообщений: 31
По умолчанию

А есть ещё какие-нибудь варианты?
Сэм вне форума Ответить с цитированием
Старый 30.04.2009, 19:36   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
А есть ещё какие-нибудь варианты?
А вам мало?
Два варианта - полная перезапись (считываем все, изменяем, затираем исходный файл, пишем) и поэлементная (как описал в посте выше).
Как еще-то? Мне лично пока ничего больше не приходит в голову.
А чем эти не устраивают?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.04.2009, 19:44   #9
Сэм
Пользователь
 
Регистрация: 12.04.2009
Сообщений: 31
По умолчанию

Всё устраивает (особенно первый вариант!). Нижайший Вам поклон, уважаемый, и огромное СПАСИБО! Займусь теперь осуществлением!!!
Сэм вне форума Ответить с цитированием
Старый 30.04.2009, 20:56   #10
Сэм
Пользователь
 
Регистрация: 12.04.2009
Сообщений: 31
Печаль

Чего-то у меня не получается?! Вот выписка из программы:
void app (FILE*c)
{char ch;
c=fopen ("project.dat","rb+");
clrscr ();
fread (&a,sizeof (a),1,c);
printf ("\nДобавить информацию\n");
do
{printf ("\nфамилия:"); scanf ("%s", &a.familiya);
printf ("номер телефона:"); scanf ("%s",&a.nomer);
printf ("дата рождения:"); scanf ("%s", &a.data);
rewind (c);
fwrite (&a,sizeof (a),1,c);
fread (&a,sizeof (a),1,c);
printf ("\nЗакончить? y/n");
ch=getch ();
}
while (ch!='y');
fclose (c).}
Что не так?
Сэм вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение Бинарных Файлов Maksitron Общие вопросы C/C++ 6 23.02.2009 21:37
Обработка файлов Си++ modulrev Помощь студентам 22 19.02.2009 18:53
Обработка файлов (Pascal) Дима82 Помощь студентам 10 02.06.2008 21:46