Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
tyrbotroll
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
#1

Ошибка в программе со структурами

13.04.2013, 21:03. Просмотров 359. Ответов 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
100
101
102
103
104
105
106
107
108
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#include <string.h>
#include <stdlib.h>
 
 
struct  hospital
{
        char fio[15];
        char pol[3];
        int year;
        char city[20];
        char diagnoz[100];
};
 
 
 
void show (char *);
void add (char *);
 
 
 
int main(void)
{
    setlocale(LC_ALL,"Russian");
    char file[50];
    char menu;
    puts("Введите имя файла:");
    gets(file);
    
    do
    {
      puts("1.Просмотр файла");
      puts("2.Добавление записи");
      puts("3.Редактирование файла");
      puts("4.Поиск");
      puts("5.Выход");
      puts("Выберите действие:");
      menu=getch();
         switch(menu)
         {
          case '1':show(file); break;
          case '2':add(file); break;
         }
    }while(menu!='5');
    return 0;
           
}
 
 
 
struct hospital input_sp(void)
{
       struct hospital sp;
       int tmp;
       fflush(stdin);
       puts("Фамилия:");
       gets(sp.fio);
       puts("Пол:");
       gets(sp.pol);
       puts("Возраст:");
       scanf("%d",&tmp);
       sp.year=tmp;
       puts("Город:");
       gets(sp.city);
       puts("Диагноз:");
       gets(sp.diagnoz);
       
       return  sp;
}
 
 
void show(char *file)
{
     FILE *f;
     struct hospital sp;
     int nom=0;
     system ("CLS");
     if(f=fopen(file, "rb")==NULL)
     {
        puts("Ошибка при открытии файла");
        
     }
     puts ("|  N |   Фамилия      | Пол  | Возраст |    Город       |  Диагноз   |");
     puts ("-------------------------------------------------------------");
     
     while(fread(&sp,sizeof(sp),1,f)==1)
        printf ("|%3d |%30s |%11s |%5d |%11s |\n", ++nom,sp.fio,sp.pol,sp.year,sp.city,sp.diagnoz);
        puts ("-------------------------------------------------------------");
          getch();
}
 
 
void add(char *file)
{
     FILE *f;
     struct hospital sp;
     system ("CLS");
     if(f=fopen(file, "ab")==NULL)
     {
        puts("Ошибка при открытии файла");
        return ;
     }
        sp=input_sp();
        fwrite(&sp,sizeof(sp),1,f);
        fclose (f);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 21:03
Ответы с готовыми решениями:

Задача со структурами. Ошибка в поиске
Добрый вечер! Пишу программу со структурами, с клавиатуры вводим количество отделов. В кажом отделе...

Ошибка при работе со структурами
#include &lt;stdio.h&gt; #include &lt;windows.h&gt; char name1; int age1; char nickname1; char...

Ошибка преобразования типов при работе со структурами
Здравствуйте. Подскажите, пожалуйста, почему не меня среда ругается. error C2440: =: невозможно...

Ошибка доступа к памяти при работе со структурами
Задача состоит следующая создать динамический массив. Т.е кол-во элементов в строках может быть...

Ошибка при работе со структурами: Expression must be a modifiable lvalue
Здравтсвуйте, не могу найти ошибку в коде: #define _CRT_SECURE_NO_WARNINGS #include &lt;math.h&gt;...

2
bgm123
40 / 40 / 27
Регистрация: 29.01.2013
Сообщений: 277
13.04.2013, 21:09 #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
100
101
102
103
104
105
106
107
108
109
110
111
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#include <string.h>
#include <stdlib.h>
 
 
struct  hospital
{
        char fio[15];
        char pol[3];
        int year;
        char city[20];
        char diagnoz[100];
};
 
 
 
void show (char *);
void add (char *);
 
 
 
int main(void)
{
    
    char file[50];
    char menu;
   
    setlocale(LC_ALL,"Russian");
    puts("Введите имя файла:");
    gets(file);
    
   
    do
    {
      puts("1.Просмотр файла");
      puts("2.Добавление записи");
      puts("3.Редактирование файла");
      puts("4.Поиск");
      puts("5.Выход");
      puts("Выберите действие:");
      menu=getch();
         switch(menu)
         {
          case '1':show(file); break;
          case '2':add(file); break;
         }
    }while(menu!='5');
    return 0;
           
}
 
 
 
struct hospital input_sp(void)
{
       struct hospital sp;
       int tmp;
       fflush(stdin);
       puts("Фамилия:");
       gets(sp.fio);
       puts("Пол:");
       gets(sp.pol);
       puts("Возраст:");
       scanf("%d",&tmp);
       sp.year=tmp;
       puts("Город:");
       gets(sp.city);
       puts("Диагноз:");
       gets(sp.diagnoz);
       
       return  sp;
}
 
 
void show(char *file)
{
     FILE *f;
     struct hospital sp;
     int nom=0;
     system ("CLS");
     if(f=fopen(file, "rb")==NULL)
     {
        puts("Ошибка при открытии файла");
        
     }
     puts ("|  N |   Фамилия      | Пол  | Возраст |    Город       |  Диагноз   |");
     puts ("-------------------------------------------------------------");
     
     while(fread(&sp,sizeof(sp),1,f)==1)
        printf ("|%3d |%30s |%11s |%5d |%11s |\n", ++nom,sp.fio,sp.pol,sp.year,sp.city,sp.diagnoz);
        puts ("-------------------------------------------------------------");
          getch();
}
 
 
void add(char *file)
{
     FILE *f;
     struct hospital sp;
     system ("CLS");
     if(f=fopen(file, "ab")==NULL)
     {
        puts("Ошибка при открытии файла");
        return ;
     }
        sp=input_sp();
        fwrite(&sp,sizeof(sp),1,f);
        fclose (f);
}
Добавлено через 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
100
101
102
103
104
105
106
107
108
109
110
111
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#include <string.h>
#include <stdlib.h>
 
 
struct  hospital
{
        char fio[15];
        char pol[3];
        int year;
        char city[20];
        char diagnoz[100];
};
 
 
 
void show (char *);
void add (char *);
 
 
 
int main(void)
{
    
    char file[50];
    char menu;
   
    setlocale(LC_ALL,"Russian");
    puts("Введите имя файла:");
    gets(file);
    
   
    do
    {
      puts("1.Просмотр файла");
      puts("2.Добавление записи");
      puts("3.Редактирование файла");
      puts("4.Поиск");
      puts("5.Выход");
      puts("Выберите действие:");
      menu=getch();
         switch(menu)
         {
          case '1':show(file); break;
          case '2':add(file); break;
         }
    }while(menu!='5');
    return 0;
           
}
 
 
 
struct hospital input_sp(void)
{
       struct hospital sp;
       int tmp;
       fflush(stdin);
       puts("Фамилия:");
       gets(sp.fio);
       puts("Пол:");
       gets(sp.pol);
       puts("Возраст:");
       scanf("%d",&tmp);
       sp.year=tmp;
       puts("Город:");
       gets(sp.city);
       puts("Диагноз:");
       gets(sp.diagnoz);
       
       return  sp;
}
 
 
void show(char *file)
{
     FILE *f;
     struct hospital sp;
     int nom=0;
     system ("CLS");
     if((f=fopen(file, "rb"))==NULL)
     {
        puts("Ошибка при открытии файла");
        
     }
     puts ("|  N |   Фамилия      | Пол  | Возраст |    Город       |  Диагноз   |");
     puts ("-------------------------------------------------------------");
     
     while(fread(&sp,sizeof(sp),1,f)==1)
        printf ("|%3d |%30s |%11s |%5d |%11s |\n", ++nom,sp.fio,sp.pol,sp.year,sp.city,sp.diagnoz);
        puts ("-------------------------------------------------------------");
          getch();
}
 
 
void add(char *file)
{
     FILE *f;
     struct hospital sp;
     system ("CLS");
     if( (f=fopen(file, "ab"))==NULL)
     {
        puts("Ошибка при открытии файла");
        return ;
     }
        sp=input_sp();
        fwrite(&sp,sizeof(sp),1,f);
        fclose (f);
}
Добавлено через 31 секунду
Цитата Сообщение от tyrbotroll Посмотреть сообщение
ошибка в программе со струткутрами
Какая?
1
tyrbotroll
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
13.04.2013, 22:23  [ТС] #3
Спасибо)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 22:23

Ошибка в программе
помогите найти ошибку в програмировании на С++ #include&lt;stdio.h&gt; #include&lt;string.h&gt; main() { ...

Непонятная ошибка в программе
Решая лабы по Си, я наткнулся на ошибку, которую никогда раньше не встречал. #include &lt;stdio.h&gt;...

Ошибка в программе(Функция)
Задание на картинке Не могу понять, где ошибка в программе #include &lt;stdio.h&gt; #include...


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

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

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