|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.04.2009, 17:49 | #1 |
Пользователь
Регистрация: 12.04.2009
Сообщений: 31
|
Обработка бинарных файлов (Си)
Здравствуйте, люди добрые! У меня задание , используя функции и режим меню, создать файл из 10 структур, просмотреть его и добавить в него новую информацию, применяя режим прямого доступа, и внести в начало списка новую информацию. А структура имеет вид: фамилия, номер телефона и дата рождения. Прогу написать не прошу, сам справлюсь. У меня единственная просьба: как новую информацию добавить именно в начало списка! Заранее спасибо!
|
30.04.2009, 17:57 | #2 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Если вопрос касается именно списка, то это зависит от того, как он задан (односвязный, двусвязный)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
30.04.2009, 18:21 | #3 |
Пользователь
Регистрация: 12.04.2009
Сообщений: 31
|
Я Вас понял, но в том то и дело, что задача поставлена именно так, как я процитировал. А возможно их (структуры) как-нибудь сдвигать?
|
30.04.2009, 18:26 | #4 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
30.04.2009, 18:52 | #5 |
Пользователь
Регистрация: 12.04.2009
Сообщений: 31
|
Что-то тогда не пойму, что задали невыполнимую задачу? Или это провокация?
|
30.04.2009, 19:00 | #6 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Можно еще так попробовать: Читаете первую запись. Пишите на ее место новую (которую нужно добавить). Потом читаете вторую запись. На ее место пишете первую. Читаете третью, на ее место вторую...и т.д.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] Последний раз редактировалось Sazary; 30.04.2009 в 19:03. |
|
30.04.2009, 19:33 | #7 |
Пользователь
Регистрация: 12.04.2009
Сообщений: 31
|
А есть ещё какие-нибудь варианты?
|
30.04.2009, 19:36 | #8 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Два варианта - полная перезапись (считываем все, изменяем, затираем исходный файл, пишем) и поэлементная (как описал в посте выше). Как еще-то? Мне лично пока ничего больше не приходит в голову. А чем эти не устраивают?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
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).} Что не так? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение Бинарных Файлов | Maksitron | Общие вопросы C/C++ | 6 | 23.02.2009 21:37 |
Обработка файлов Си++ | modulrev | Помощь студентам | 22 | 19.02.2009 18:53 |
Обработка файлов (Pascal) | Дима82 | Помощь студентам | 10 | 02.06.2008 21:46 |