Форум программистов, компьютерный форум CyberForum.ru

Бинарный файл и структура - C++

Восстановить пароль Регистрация
 
METZEN
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 32
17.05.2011, 10:50     Бинарный файл и структура #1
Проверьте программу,не могу найти ошибку
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
112
113
114
115
116
117
118
119
120
121
122
#include <stdio.h>
 #include <string.h>
 #include <windows.h>
 #include <conio.h>
 #include <iostream>
 using namespace std;
 
 char bufRus[256];
  char* Rus(char* mes)
  { AnsiToOem(mes, bufRus);
    return bufRus;
   }
 
struct DINAMO
{
    char fam[20];
    int shayb;
    int pereda4;
};
struct SPARTAK
{
    char fam[20];
    int shayb;
    int pereda4;
}
 
int compare(const void *din,const void *spa);
 
 
void create()
{
DINAMO din;
int sl;
FILE *fbin;
if ((fbin =fopen("Dinamo.bin","wb")) == NULL)
   { puts(Rus("Ошибка создания  файла\n "));
   getch();
   }
  else
        { do
           { cout << Rus("\n Фамилия: ");
                 cin.get() ; gets (din.fam) ;
                 cout << Rus("\n Число шайб: ");
                 cin >> din.shayb;
                 cout << Rus("\n Количество передач: ");
                 cin >> din.pereda4;
                 fwrite(&din, sizeof(din),1,fbin);
                 cout<<Rus("\n Продолжить ввод? (1-да/0-нет)");
                 cin >> sl;
                 } while(sl == 1);
   }  
  fclose(fbin);
}
 
void creat()
{
SPARTAK spa;
int sl1;
FILE *f1bin;
if ((f1bin =fopen("Spartak.bin","wb")) == NULL)
   { puts(Rus("Ошибка создания  файла\n "));
   getch();
   }
  else
        { do
           { cout << Rus("\n Фамилия: ");
                 cin.get() ; gets (spa.fam) ;
                 cout << Rus("\n Число шайб: ");
                 cin >> spa.shayb;
                 cout << Rus("\n Количество передач: ");
                 cin >> spa.pereda4;
                 fwrite(&spa, sizeof(spa),1,f1bin);
                 cout<<Rus("\n Продолжить ввод? (1-да/0-нет)");
                 cin >> sl1;
                 } while(sl1 == 1);
   }  
  fclose(f1bin);
}
 
void view()
  { FILE *fbin;
        if ((fbin =fopen("Dinamo.bin","rb")) == NULL)
         { puts(Rus("Ошибка открытия  файла\n"));
           getch();
         }
        else
         { fseek(fbin, 0, SEEK_END);
           int n_record = ftell(fbin)/sizeof(DINAMO);
           DINAMO *din = new DINAMO[n_record];
           fseek(fbin, 0, SEEK_SET);
           fread(din, sizeof(DINAMO),n_record, fbin);
           fclose(fbin);
           qsort(din, n_record, sizeof(DINAMO), compare);
           for (int i=0; i < n_record; i++)
                cout << "\n" << din[i].fam << "  " <<
                 din[i].shayb << "  " << din[i].pereda4 << "  " <<
                cout << "\n";
                getch();
         }
  }
 
void vie()
  { FILE *f1bin;
        if ((f1bin =fopen("Spartak.bin","rb")) == NULL)
         { puts(Rus("Ошибка открытия  файла\n"));
           getch();
         }
        else
         { fseek(f1bin, 0, SEEK_END);
           int n_record = ftell(f1bin)/sizeof(SPARTAK);
           SPARTAK *spa = new SPARTAK[n_record];
           fseek(f1bin, 0, SEEK_SET);
           fread(spa, sizeof(SPARTAK),n_record, f1bin);
           fclose(f1bin);
           qsort(spa, n_record, sizeof(SPARTAK), compare);
           for (int i=0; i < n_record; i++)
                cout << "\n" << spa[i].fam << "  " <<
                 spa[i].shayb << "  " << spa[i].pereda4 << "  " <<
                cout << "\n";
                getch();
         }
  }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aneron
 Аватар для Aneron
157 / 156 / 12
Регистрация: 20.04.2010
Сообщений: 570
17.05.2011, 10:53     Бинарный файл и структура #2
Debug тебе в помощь
absokolov
29 / 29 / 1
Регистрация: 10.05.2011
Сообщений: 120
17.05.2011, 11:01     Бинарный файл и структура #3
Цитата Сообщение от METZEN Посмотреть сообщение
Проверьте программу,не могу найти ошибку
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
112
113
114
115
116
117
118
119
120
121
122
#include <stdio.h>
 #include <string.h>
 #include <windows.h>
 #include <conio.h>
 #include <iostream>
 using namespace std;
 
 char bufRus[256];
  char* Rus(char* mes)
  { AnsiToOem(mes, bufRus);
    return bufRus;
   }
 
struct DINAMO
{
    char fam[20];
    int shayb;
    int pereda4;
};
struct SPARTAK
{
    char fam[20];
    int shayb;
    int pereda4;
}
 
int compare(const void *din,const void *spa);
 
 
void create()
{
DINAMO din;
int sl;
FILE *fbin;
if ((fbin =fopen("Dinamo.bin","wb")) == NULL)
   { puts(Rus("Ошибка создания  файла\n "));
   getch();
   }
  else
        { do
           { cout << Rus("\n Фамилия: ");
                 cin.get() ; gets (din.fam) ;
                 cout << Rus("\n Число шайб: ");
                 cin >> din.shayb;
                 cout << Rus("\n Количество передач: ");
                 cin >> din.pereda4;
                 fwrite(&din, sizeof(din),1,fbin);
                 cout<<Rus("\n Продолжить ввод? (1-да/0-нет)");
                 cin >> sl;
                 } while(sl == 1);
   }  
  fclose(fbin);
}
 
void creat()
{
SPARTAK spa;
int sl1;
FILE *f1bin;
if ((f1bin =fopen("Spartak.bin","wb")) == NULL)
   { puts(Rus("Ошибка создания  файла\n "));
   getch();
   }
  else
        { do
           { cout << Rus("\n Фамилия: ");
                 cin.get() ; gets (spa.fam) ;
                 cout << Rus("\n Число шайб: ");
                 cin >> spa.shayb;
                 cout << Rus("\n Количество передач: ");
                 cin >> spa.pereda4;
                 fwrite(&spa, sizeof(spa),1,f1bin);
                 cout<<Rus("\n Продолжить ввод? (1-да/0-нет)");
                 cin >> sl1;
                 } while(sl1 == 1);
   }  
  fclose(f1bin);
}
 
void view()
  { FILE *fbin;
        if ((fbin =fopen("Dinamo.bin","rb")) == NULL)
         { puts(Rus("Ошибка открытия  файла\n"));
           getch();
         }
        else
         { fseek(fbin, 0, SEEK_END);
           int n_record = ftell(fbin)/sizeof(DINAMO);
           DINAMO *din = new DINAMO[n_record];
           fseek(fbin, 0, SEEK_SET);
           fread(din, sizeof(DINAMO),n_record, fbin);
           fclose(fbin);
           qsort(din, n_record, sizeof(DINAMO), compare);
           for (int i=0; i < n_record; i++)
                cout << "\n" << din[i].fam << "  " <<
                 din[i].shayb << "  " << din[i].pereda4 << "  " <<
                cout << "\n";
                getch();
         }
  }
 
void vie()
  { FILE *f1bin;
        if ((f1bin =fopen("Spartak.bin","rb")) == NULL)
         { puts(Rus("Ошибка открытия  файла\n"));
           getch();
         }
        else
         { fseek(f1bin, 0, SEEK_END);
           int n_record = ftell(f1bin)/sizeof(SPARTAK);
           SPARTAK *spa = new SPARTAK[n_record];
           fseek(f1bin, 0, SEEK_SET);
           fread(spa, sizeof(SPARTAK),n_record, f1bin);
           fclose(f1bin);
           qsort(spa, n_record, sizeof(SPARTAK), compare);
           for (int i=0; i < n_record; i++)
                cout << "\n" << spa[i].fam << "  " <<
                 spa[i].shayb << "  " << spa[i].pereda4 << "  " <<
                cout << "\n";
                getch();
         }
  }
А на что ругается то?
METZEN
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 32
17.05.2011, 11:07  [ТС]     Бинарный файл и структура #4
много на что.В часности на compare
absokolov
29 / 29 / 1
Регистрация: 10.05.2011
Сообщений: 120
17.05.2011, 11:23     Бинарный файл и структура #5
Цитата Сообщение от METZEN Посмотреть сообщение
много на что.В часности на compare
Так у вас эта функция должна возвращать инт! А у вас она и не расписана!

P.S. Написал то что увидел! Читать весь код просто лень, точно так же как и вам лень скинуть сюда ошибки!
METZEN
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 32
17.05.2011, 11:34  [ТС]     Бинарный файл и структура #6
Когда запускаешь в ошибках она пишет вот это:
1>------ Build started: Project: nml jml, Configuration: Debug Win32 ------
1>Build started 17.05.2011 15:38:02.
1>PrepareForBuild:
1> Creating directory "c:\documents and settings\1\мои документы\visual studio 2010\Projects\nml jml\Debug\".
1>InitializeBuildStatus:
1> Creating "Debug\nml jml.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1> kj;.cpp
1>c:\documents and settings\1\мои документы\visual studio 2010\projects\nml jml\nml jml\kj;.cpp(27): error C2628: 'SPARTAK' followed by 'int' is illegal (did you forget a ';'?)
1>c:\documents and settings\1\мои документы\visual studio 2010\projects\nml jml\nml jml\kj;.cpp(93): error C2664: 'qsort' : cannot convert parameter 4 from 'SPARTAK (__cdecl *)(const void *,const void *)' to 'int (__cdecl *)(const void *,const void *)'
1> None of the functions with this name in scope match the target type
1>c:\documents and settings\1\мои документы\visual studio 2010\projects\nml jml\nml jml\kj;.cpp(115): error C2664: 'qsort' : cannot convert parameter 4 from 'SPARTAK (__cdecl *)(const void *,const void *)' to 'int (__cdecl *)(const void *,const void *)'
1> None of the functions with this name in scope match the target type
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.46
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
17.05.2011, 11:58     Бинарный файл и структура #7
Цитата Сообщение от METZEN Посмотреть сообщение
1>c:\documents and settings\1\мои документы\visual studio 2010\projects\nml jml\nml jml\kj;.cpp(27): error C2628: 'SPARTAK' followed by 'int' is illegal (did you forget a ';'?)
пропущена точка с запятой.

Цитата Сообщение от METZEN Посмотреть сообщение
1>c:\documents and settings\1\мои документы\visual studio 2010\projects\nml jml\nml jml\kj;.cpp(93): error C2664: 'qsort' : cannot convert parameter 4 from 'SPARTAK (__cdecl *)(const void *,const void *)' to 'int (__cdecl *)(const void *,const void *)'
какой-то косяк с функцией compare в вызове qsort. Все ж написано.

Добавлено через 2 минуты
И судя по тому, что compare объявлена сразу после структуры SPARTAK последние две ошибки - следствие первой.
METZEN
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 32
17.05.2011, 12:02  [ТС]     Бинарный файл и структура #8
Цитата Сообщение от kazak Посмотреть сообщение
пропущена точка с запятой.


какой-то косяк с функцией compare в вызове qsort. Все ж написано.

Добавлено через 2 минуты
И судя по тому, что compare объявлена сразу после структуры SPARTAK последние две ошибки - следствие первой.
А ты можешь исправить? если не затруднит.
Я первый раз пишу в визуал студии и вообще плохо разбираюсь в этих кодах.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
17.05.2011, 12:07     Бинарный файл и структура #9
Во первых я не вижу реализации этой функции.
Во вторых
Цитата Сообщение от kazak Посмотреть сообщение
И судя по тому, что compare объявлена сразу после структуры SPARTAK последние две ошибки - следствие первой.
точку с запятой после объявления структуры поставил?
METZEN
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 32
17.05.2011, 12:13  [ТС]     Бинарный файл и структура #10
Я бы поставил,но я сейчас на ленте сижу,а тут визуал студио не работает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2011, 12:20     Бинарный файл и структура
Еще ссылки по теме:

С++ Бинарный файл C++
Бинарный файл C++
Бинарный файл C++

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

Или воспользуйтесь поиском по форуму:
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
17.05.2011, 12:20     Бинарный файл и структура #11
Сначала первый косяк устрани, а там видно будет.
Yandex
Объявления
17.05.2011, 12:20     Бинарный файл и структура
Ответ Создать тему
Опции темы

Текущее время: 20:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru