Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Си:Поиск по файлу как реализовать
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
kokos kokos вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.01.2011
По умолчанию Си:Поиск по файлу как реализовать - 10.05.2011, 21:16

Здравствуйте! Помогите пожалуйста доделать программу. Условие задачи: создать файл Telefon, который содержит номера телефонов сотрудников учреждения: указывается Ф.И.О и номер телефона. Найти номер телефона сотрудника по его Ф.И.О.
Вот, что у меня получилось:
c Код:
#include<stdio.h>
#include<conio.h>
struct Telefon
{
           char fio[15];
           char tel[10];
           };
           int main()
           {
                   FILE *f=NULL;
                   char c[15];  //фамилия - образец для поиска по файлу
                   Telefon a;
                   int i;
                   if ((f=fopen("notebook.dat","wb"))=NULL)
                   {
   printf("Ошибка при создании файла");
   getch();
   return 1;
}
for (i=1;i<=3;i++)
{
        printf("Введите Ф.И.О:");
        scanf("%s",&a.fio);
        printf("Введите номер телефона:");
        scanf("%s",&a.tel);
        fwrite(&a,sizeof(a),1,f);
}
fclose(f);
А как вывести содержимое файла на экран? Поиск по файлу предполагаю делать так :
c Код:
if (a.fio==c)
{
printf("%s %s",a.fio,a.tel);
}
Помогите пожалуйста доделать до конца. Если можно с комментариями.
Ответить с цитированием
  (#2 (permalink)) Старый
Scorpion Scorpion вне форума
Member
 
Сообщений: 90
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.06.2003
По умолчанию 18.05.2011, 14:48

cpp Код:
char fio[15];
Не маловато ли для ФИО?

cpp Код:
Telefon a;
На чистом С так писать нельзя. Надо либо
cpp Код:
struct Telefon a;
, либо
cpp Код:
typedef struct Telefon {...} Telefon;

Поиск по файлу:
Надо считать структуру Telefon из файла (раз ты записал при помощи fwrite, то инструкцией fread).
Проверка на равенство строк осуществляется функцией strcmp (она определена в файле string.h).


cpp Код:
if (a.fio==c)
Так строки сравнивать нельзя.

То есть, надо примерно так (это только план программы, без необходимых проверок)

cpp Код:
FILE *f = fopen("notebook.dat", "rb")/*Открыть файл на чтение*/
struct Telefon tel;
while(feof(f))
{
  fread(&tel, sizeof(Telefon), 1, f);
  if (!strcmp(tel, c)) /* strcmp для одинаковых строк возвращает 0.*/
  {
     printf("%s %s", a.fio, a.tel);
  }
}

Как-то так.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать поиск элемента stasey91 Вопросы начинающих программистов 0 23.05.2011 02:06
Разбор и поиск по XML-файлу DrDiesel7373 Visual C++ 8 27.06.2008 00:22
Поиск пути как реализовать knight-max Алгоритмы 12 03.04.2007 12:34
Как реализовать поиск в файле Sergey M Delphi 1 14.03.2006 06:30
Поиск символа как реализовать NBSD Delphi 2 16.02.2006 18:57
Поиск по файлу как это реализовать NoliX Delphi 1 05.07.2005 22:33
Быстрый поиск по структурированному файлу Aist++ Алгоритмы 9 27.06.2005 10:21
Поиск по шаблону как реализовать sj Алгоритмы 4 13.01.2005 03:20
Как реализовать поиск в программе waitS Delphi 0 29.09.2004 21:25
Как реализовать поиск файлов в С++ по маске Anonymous Вопросы начинающих программистов 0 24.06.2004 16:25
Поиск в TRichEdit как реализовать работу компонента vilru Delphi 5 20.06.2004 17:35
Как осуществлять поиск по файлу Alecks Visual C++ 1 03.07.2003 19:09



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов