![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]()
А в чем ошибка? Вы бы лучше написали код полностью.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 12.04.2009
Сообщений: 31
|
![]()
Да написать можно, но дело в том, что остальные функции работают исправно, а эта нет. Имеет ли смысл писать всё?
|
![]() |
![]() |
![]() |
#13 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]() Цитата:
Как минимум нужно объявление структуры и функция ее заполнения.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 12.04.2009
Сообщений: 31
|
![]()
Понял, пишу! Это займёт некоторое время.
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 12.04.2009
Сообщений: 31
|
![]()
#include <stdio.h>
#include <conio.h> #include <string.h> struct spisok {char familiya[20];char nomer[20];char data[20];}a; void input (FILE*); void print (FILE*); void app (FILE*); main () {char b; FILE*c; while (1) {clrscr (); puts ("1-новый файл"); puts ("2-просмотр файла"); puts ("3-добавление в файл"); puts ("0-выход"); b=getch (); switch (b) {case '1': input (c); break; case '2': print (c); break; case '3': app (c); break; case '0': return 0; default: puts ("неверный режим");}}} void input (FILE*c) {char ch; c=fopen ("project.dat","wb"); clrscr (); printf ("\nВведите информацию о знакомом\n"); do {printf ("\nфамилия:"); scanf ("%s",&a.familiya); printf ("номер телефона:"); scanf ("%s",&a.nomer); printf ("дата рождения:"); scanf ("%s",&a.data); fwrite (&a,sizeof (a),1,c); printf ("\nЗакончить? y/n"); ch=getch ();} while (ch!='y'); fclose (c);} void print (FILE*c) {int i; clrscr (); c=fopen ("project.dat","rb"); i=1; fread (&a,sizeof (a),1,c); while (!feof (c)) {printf ("\n%s\nтелефон: %s\nдата рождения: %s",a.familiya,a.nomer,a.data); fread (&a,sizeof (a),1,c); i++;} getch ();} А далее то, что печатал выше! Прошу прощения, если долго - отвлекают! |
![]() |
![]() |
![]() |
#16 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]()
Так. Во-первых, используйте тег CODE. Код невозможно читать!
Во-вторых, структурируйте свой код. Посмотрите сами - все в одну кучу. Теперь по проблеме. В функции app вы считываете первую запись, но потом тут же затираете ее. То есть происходит простая замена записи новой. Вам нужно использовать функции смещения указателя. Или просто прочитать все записи в массив (или в список), а потом записать его после новой записи.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 12.04.2009
Сообщений: 31
|
![]()
Можете продемонстрировать?
|
![]() |
![]() |
![]() |
#18 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]() Цитата:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 12.04.2009
Сообщений: 31
|
![]()
Я понял! А я в это время попробовал написать так:
void app (FILE*c) { char ch; int i; clrscr (); c=fopen ("project.dat","rb+); while (!feof (c)) { i=1; fread (&a,sizeof (a),1,c; i++; } rewind (c); printf ("\nДобавить информацию\n"); do { printf ("\nфамилия:");scanf ("%s",&a.familiya); printf ("номер телефона:");scanf ("%s",&a.nomer); printf ("дата рождения:");scanf ("%s",&a.data); fwrite (&a,sizeof (a),1,c); printf ("\nЗакончить? y/n"); ch=getch (); } while (ch='y'); fclose (c); } Как такой вариант? ![]() |
![]() |
![]() |
![]() |
#20 | ||
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]() Цитата:
Цитата:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение Бинарных Файлов | Maksitron | Общие вопросы C/C++ | 6 | 23.02.2009 21:37 |
Обработка файлов Си++ | modulrev | Помощь студентам | 22 | 19.02.2009 18:53 |
Обработка файлов (Pascal) | Дима82 | Помощь студентам | 10 | 02.06.2008 21:46 |