Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/76: Рейтинг темы: голосов - 76, средняя оценка - 4.63
0 / 0 / 1
Регистрация: 09.04.2010
Сообщений: 14

Телефонная книга

13.04.2010, 07:34. Показов 14763. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, ребят, мне надо сделать подобие телефонной книги.
Для записи контактов определить структуру: {Фамилия,Имя,Адрес,Номер телефона}.
Так вот, как работать со структурами я уже знаю, я могу записать структуру в массив и потом использовать её, могу сделать динамический массив структур, ну и т.д.
Проблема у меня в том, что я не могу разобраться, как записать структуру или массив структур в файл, чтоб в дальнейшем с ними можно было работать, т.е. записать в файл, прочитать из файла, вывести какую-нибудь одну запись, либо все. Поясните пожалуйста, как это можно сделать.
Заранее, огромное спасибо!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.04.2010, 07:34
Ответы с готовыми решениями:

Телефонная книга
помогите найти хоть пример кода программа телефонная книга,имеет менюшку ее функционал:добавление\удаление абонента,его редактирование ...

Класс Телефонная Книга
Доброго времени суток форумчане! Получил следующее задание, но столкнулся с проблемой.. 1) опишите класс "контакт",...

Работа с файлами: телефонная книга
Здравствуйте участники форума! Помогите, если сможете, разобраться какие ошибки в программе. Задание такое: составить программу...

2
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
13.04.2010, 10:56
Работа со структурами Си++
0
0 / 0 / 1
Регистрация: 09.04.2010
Сообщений: 14
20.04.2010, 08:33  [ТС]
Лучший ответ Сообщение было отмечено AlexSMG как решение

Решение

Спасибо конечно, что так быстро ответили, но у меня ни одна программа не запустилась...
Пользуюсь Borland C++ for DOS version 3.1

Добавлено через 1 час 34 минуты
Вот, как записать в файл я разобрался. Тут я создал динамический массив структур, с помощью которого и записываю данные в файл.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
 
struct NewRec
{
 char Name  [15];
 char Sname [20];
 char Pnum  [6];
};
 
main (void)
{
  clrscr ();
 int i,rec;
 char CH;
  NewRec *Arr;
  Arr = (NewRec*) malloc ( sizeof(NewRec) );
 FILE *PB;
  PB = fopen ("PhoneBook.FIL", "a+");
 for ( i=0,rec=2; CH!=27; i++,rec++ )
 {
  printf ("Введите имя абонента    ->"); scanf ("%s", &Arr[i].Name);
  printf ("Введите фамилию абонента->"); scanf ("%s", &Arr[i].Sname);
  printf ("Введите номер телефона  ->"); scanf ("%s", &Arr[i].Pnum);
  fprintf (PB, "%s %s %s\n", Arr[i].Sname, Arr[i].Name, Arr[i].Pnum);
   CH = getch ();
  if (CH!=27) Arr = (NewRec*) realloc ( Arr, rec*sizeof(NewRec) );
 }
 fclose (PB);
}
Пожалуйста подскажите, как вывести на экран всё содержимое файла и (отдельно) какую-нибудь конкретную запись?

Добавлено через 19 часов 25 минут
Что- то тема как- то не активно развивается... Но я всё равно буду выкладывать свои наработки, может кому и пригодится.
Значит, вот эта программа для записи структуры в файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
 
struct NewRec
{
 char Name  [15];
 char Sname [20];
 char Pnum  [6];
};
 
void main (void)
{clrscr ();
 int i,rec;
 char CH;
  NewRec *Arr;
  Arr = (NewRec*) malloc ( sizeof(NewRec) );
 FILE *PB;
  PB = fopen ("PhBook.FIL", "a+");
 for ( i=0,rec=2; CH!=27; i++,rec++ )
 {
  printf ("Введите имя абонента    ->"); scanf ("%s", &Arr[i].Name);
  printf ("Введите фамилию абонента->"); scanf ("%s", &Arr[i].Sname);
  printf ("Введите номер телефона  ->"); scanf ("%s", &Arr[i].Pnum);
  fprintf (PB, "%s %s %s \n", Arr[i].Sname, Arr[i].Name, Arr[i].Pnum);
   CH = getch ();
  if (CH!=27) Arr = (NewRec*) realloc ( Arr, rec*sizeof(NewRec) );
 }
 fclose (PB);
 free (Arr);
}
А эта для чтения структуры из файла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
 
struct NewRec
{
 char Name  [16];
 char Sname [21];
 char Pnum  [7];
};
 
void main (void)
{
  clrscr ();
 int i,j,rec;
 char CH;
  NewRec *Arr;
 FILE *PB;
  Arr = (NewRec*) malloc ( sizeof(NewRec) );
  PB = fopen ("PhBook.FIL", "r");
 for (i=0,rec=2; !feof(PB); i++,rec++)
 {
  fscanf (PB,"%s %s %s",Arr[i].Sname,Arr[i].Name,Arr[i].Pnum);
   Arr = (NewRec*) realloc ( Arr, rec*sizeof(NewRec) );
 }
 fclose (PB);
 for (j=0; j<i-1; j++) printf ("%s %s %s\n",Arr[j].Sname,Arr[j].Name,Arr[j].Pnum);
 free (Arr);
  getch ();
}
Позже я их объединю в одну программу.
Если Вы знаете другой способ, напишите, попробую учесть все Ваши замечания.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2010, 08:33
Помогаю со студенческими работами здесь

Работа с файлами. Телефонная книга
Вечер добрый. задание: А. Создать файл, содержащий сведения о телефонах абонентов. Каждая записаь имеет поля: фамилия абонентов, год...

Телефонная книга сортировка пузырьком
Сортировка массива записей (телефонной книги) методом Пузырька. Записи считываются из текстового файла, каждая запись состоит из двух...

Телефонная книга: просмотр, поиск, добавление записей
Доброго вечера. Такая проблема. Завтра в универ нужно сдать программу, с которой вышла полная запара, т.к. не имею представления как...

Не обращается к функции из класса. Проект телефонная книга
Здравствуйте! Прошу помощи так как проект нужно сдавать уже на днях :( В данном проекте функции уже написаны, но существует следующая...

Телефонная книга: подскажите алгоритм быстрого поиска контактов
привет всем! какой самый быстрий алгоритм поиска контактов.и какие вы предлагайте допустим у нас имена Anton Aren Arsen Arkadi ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru