Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 25
1

Функция поиска по структуре

20.12.2013, 12:27. Просмотров 630. Ответов 2
Метки нет (Все метки)

Добрый день! Задали разработать систему управления базой данных на языке С. Хранение данных организовать в виде структуры. Отдельные функции СУБД должны быть оформлены в виде подпрограмм.
Код программы написала, но функция поиска не работает. Посмотрите, пожалуйста, где ошибка:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
struct student /*the structure*/
{ 
char fio[15];  /*Surname*/
char name[10];  /*name + ‘\n’ + ‘\0’*/
char otch[15];  /*otchestvo+'\n'+'\0'*/
int  group[6];
char sex[3];
int  date[9];
char city[12];
char street[15];
int  house[4];
}
 
/*glavnoe menu*/
main()
{
int N; /*N numerazia menu*/
/*clrscr();*/
printf (" \n \n ***********------MAIN MENU------*********** \n");
printf (" ********** Press [key] to choice: ********* \n");
printf ("******************************************** \n \n");
 
printf("  Open DB [1] \n");
printf("  Add information [2] \n");
printf("  Search [3] \n");
 
printf("\n \n Enter the key: ");
scanf("%d",&N);
 
     switch(N)
     {
       case 1:lab1();break;
       case 3:lab3();break;
              
       default:printf("Error, there is no function witn such number");
      }
 
}
 
/*function: open DB*/ 
/*работает*/
lab1()
{ 
    struct student tz;  /*tekuchaya zapis file*/
    FILE *f;             /*file*/
    printf("************************************************ \n");
    printf("DATA BASE: \n");
    
    f=fopen("stud.txt","r"); /*open the file*/
        if(f==NULL) 
        {
        puts("File was not found!");
        return 1;
        }
    while(fgets(&tz,sizeof(struct student),f) != NULL)
    printf("%s \n",&tz);
    fclose(f);
    getch();
 }
 
/*function: search by surname*/ /*не работает*/
lab3()
{ 
struct student search1;  
        FILE *f;
        char b;
        f=fopen("stud.txt","r"); 
        if(f==NULL)
            {
            puts("File was not found!");
            return 1;
            }
        
        printf("Enter the letter:");
        b=getchar();
        printf("= %c", b);
        /*while there is not the end of the file*/
        while((fgets(&search1,sizeof(struct student),f)) != NULL)
        if(search1.name[0]==b)
            { 
            search1.fio[14]='\0';
            search1.name[9]='\0';
            search1.group[5]='\0';
            
            printf("\n%s %s %s", search1.fio, search1.name, search1.group);
            }
                    
        
    getch();
  return 0;
}
 
/*function: add information*/
/*работает*/
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2013, 12:27
Ответы с готовыми решениями:

Проблема с реализацией функции поиска по структуре
Столкнулся со следующей проблемой: Есть структура. struct Bicycle { int index; char model;...

Функция, осуществляющая поиск в структуре
Здравствуйте уважаемые форумчане! Помогите, пожалуйста, разобраться со структурами. Суть программы...

Функция, которая возвращает 2 значения в структуре
В функции searchMax должны возвращаться координаты, как это сделать? #include &lt;stdlib.h&gt;...

Организация поиска в структуре С++
Помогите, пожалуйста, со структурой в С++. С этой темой у меня, можно сказать, трудности...

2
Модератор
Эксперт С++
10150 / 8499 / 5165
Регистрация: 18.12.2011
Сообщений: 22,738
20.12.2013, 12:52 2
Не работает вод-вывод
fgets(&search1,sizeof(struct student),f)
прочитает до первого нуля.
Остальное окажется незаполненным.
Используйте функции бинарного чтения/записи read/write
0
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 25
20.12.2013, 18:16  [ТС] 3
Дело в том, что структура поиска работает в программе не разделенная на функции. А здесь, в качестве функции даже не ждет ввода символа, который необходимо искать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2013, 18:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Функции поиска в структуре
Ребята, столкнулся с заданием, не знаю как реализовать функции поиска в структурах собственно,...

Выводит ли результаты поиска стандартная функция поиска в html? Код привел ниже
При обращении к стандартному поиску в html, код которого приведен ниже, будут ли выводится...

Функция сортировки массива в структуре
Помогите пожалуйста в написании функции осуществляющей перестановку строк двухмерного массива:...

Функция-член в структуре. В чём ошибка?
#pragma hdrstop #pragma argsused #include &lt;tchar.h&gt; #include &lt;stdio.h&gt; #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.