Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
#1

Поиск данных в файле по ключевому полю - C++

24.05.2010, 01:03. Просмотров 1008. Ответов 11
Метки нет (Все метки)

Как можно производить поиск данных в файле по ключевому полю???
есле сможете можно ли пример или показать как можно его произвести программа файла есть , вот
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
// 16.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
 
struct  BOOK
{
    char *name;
    char *avtor;
    char *tematika;
    char  *godvipuska;
    char *ISBN;
    char *izdatelstvo;
};
 using namespace std;
const int Amax=255;
 
ostream& operator<<(ostream& out, BOOK &J)
 { 
     out<<"\n фамилия автора : "<<J.avtor;
     out<< "\n тематика книги : "<<J.tematika;
     out<<"\n год выпуска : "<<J.godvipuska;
     out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
     return out;
 }
 
int _tmain()
{    
    setlocale (LC_ALL, "Russian");
    
    BOOK k[3];
    int i, j;
 
 
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
            k[i].name = new char [Amax];
            scanf_s("%s",k[i].name, Amax);
 
            printf ("введите фамилию автора\t");
            k[i].avtor = new char [Amax];
            scanf_s("%s",k[i].avtor, Amax);
 
            printf ("введите тематику книги\t");
            k[i].tematika = new char [Amax];
            scanf_s("%s",k[i].tematika, Amax);
 
            printf ("введите год выпуска книги\t");
            k[i].godvipuska = new char [Amax];
            scanf_s("%s",&k[i].godvipuska);
 
            printf ("введите ISBN книги\t");
            k[i].ISBN = new char [Amax];
            scanf_s("%s",k[i].ISBN, Amax);
 
            printf ("введите издательство книги\t");
            k[i].izdatelstvo = new char [Amax];
            scanf_s("%s",k[i].izdatelstvo, Amax);
 
            printf("\n");
        }
 
      fclose(f);
 
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf (f, "%s %s %s %s %s %s \n", &k[i].name, &k[i].avtor, &k[i].tematika, &k[i].godvipuska, &k[i].ISBN, &k[i].izdatelstvo );
    }
      fclose(f);
 
 
for (i=0; i<3; i++)
      {
          printf("%s %s %s %s %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
    
 
 
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].godvipuska;
  delete[] k[i].ISBN;
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
}
    _getch();
      return 0;
}
Добавлено через 5 часов 15 минут
помогите кто-нить

Добавлено через 17 часов 59 минут
ау, народ ну помогите мне пж, или киньте ссылку где можно про это почитать, а то найти не могу

Добавлено через 7 часов 25 минут
......
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2010, 01:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск данных в файле по ключевому полю (C++):

Реализовать поиск по заданному полю в массиве структур и вывод этих данных на консоль - C++
Здравствуйте, пишу код чтобы я вводил какой-либо товар, отмечал какого года он был продан и сколько выручки было получено. Но не могу...

КАК наладить поиск по ключевому слову - C++
Вообщем засел за написание курсовой, помогите пожалуйста. Одна из задач состоит в том что бы искать фамилию человека из текстового файла....

Реализовать поиск по заданному полю в массиве объектов типа Student и вывод этих данных на консоль - C++
В задаче надо определить самое часто встречаемое имя среди женщин и среди мужчин. #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Поиск в файле. Структура данных - C++
Здравствуйте. Мне необходимо создать структуру данных, записать всё в файл и прочитать его. Это всё получилось у меня. У меня структура...

Поиск данных в файле по Фамилии - C++
Нужно написать программу которая будет брать информацию из файла txt формата, например есть файл all.txt в котором содержатся такие данные:...

Поиск данных в текстовом файле - C++
Подскажите как можно через массив вывести информацию находящуюся в текстовом файле. ну например у меня есть в файле Имя Фамилия и т.д. и...

11
kazak
3051 / 2372 / 160
Регистрация: 11.03.2009
Сообщений: 5,437
Завершенные тесты: 1
24.05.2010, 08:39 #2
Я бы указатели в структуре заменил статическими массивами и для записи\чтения использовал функции fwrite\fread.
0
Sudoki
124 / 64 / 1
Регистрация: 19.04.2010
Сообщений: 196
24.05.2010, 08:54 #3
Цитата Сообщение от Luna17 Посмотреть сообщение
struct BOOK
{
char *name;
char *avtor;
char *tematika;
char *godvipuska;
char *ISBN;
char *izdatelstvo;
};

Я бы эту структуру написал бы так
C++
1
2
3
4
5
6
7
8
9
typedef struct
{
 char name[100];
 char avtor[50];
 char tematika[100];
 char godvipuska[10]; //Формат (14.06.2010). Здесь бы что то другого типа SYSTEMTIME
 char ISBN[100]; //ТОчно не помню но у него тоже фиксированая длина
 char izdatelstvo[100];
}BOOK, *PBOOK;
Добавлено через 2 минуты
А дальше просто
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FILE* fil;
BOOK book;
 
fil = fopen("book.txt", "r");
 
while(!feof(fil)){
 
fread(&book, sizeof(book), 1, fil);
 
//Выводиде 
 
}
 
fclose(fil);
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
24.05.2010, 20:16  [ТС] #4
Если я правильно поняла, то должно вот так получаться, но у меня возникают ошибки при компиляции, их было 15, я доправила до 4 с ними справится не могу подскажите как истправить

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
123
124
125
126
127
128
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
 
typedef struct  
{
    char name[100];
    char avtor[50];
    char tematika[100];
    int  godvipuska[10];
    char ISBN[100];
    char izdatelstvo[100];
}BOOK, *PBOOK;
 using namespace std;
const int Amax=255;
 
ostream& operator<<(ostream& out, BOOK &J)
 { 
     out<<"\n фамилия автора : "<<J.avtor;
     out<< "\n тематика книги : "<<J.tematika;
     out<<"\n год выпуска : "<<J.godvipuska;
     out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
     return out;
 }
FILE* fil = fopen("book txt", "r+t");
while( !feof(fil));
{
    fread(&book, sizeof(book), 1, fil);
}
 
fclouse(fil);
 
 
 
 
 
 
 
int _tmain()
{    
    setlocale (LC_ALL, "Russian");
    
    BOOK k[3], book;
    int i, j;
 
 
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
                        scanf_s("%s",k[i].name, Amax);
 
            printf ("введите фамилию автора\t");
                        scanf_s("%s",k[i].avtor, Amax);
 
            printf ("введите тематику книги\t");
                        scanf_s("%s",k[i].tematika, Amax);
 
            printf ("введите год выпуска книги\t");
                        scanf_s("%s",&k[i].godvipuska);
 
            printf ("введите ISBN книги\t");
                        scanf_s("%s",k[i].ISBN, Amax);
 
            printf ("введите издательство книги\t");
                    scanf_s("%s",k[i].izdatelstvo, Amax);
 
            printf("\n");
        }
 
      fclose(f);
 
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf (f, "%s %s %s %i %s %s \n", &k[i].name, &k[i].avtor, &k[i].tematika, &k[i].godvipuska, &k[i].ISBN, &k[i].izdatelstvo );
    }
      fclose(f);
 
 
for (i=0; i<3; i++)
      {
          printf("%s %s %s %i %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
    
FILE* fil = fopen("book txt", "w+t");
while(!feof(fil)){
 
fread(&book, sizeof(book), 1, fil); //Выводиде 
 
}
 
fclose(fil);
 
fclose(fil);
 
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].godvipuska;
  delete[] k[i].ISBN;
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
}
    _getch();
      return 0;
}
Компиляция
Ошибка 2 error C2059: синтаксическая ошибка: while c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 36
Ошибка 5 error C2440: инициализация: невозможно преобразовать 'FILE *' в 'int' c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 41
Ошибка 3 error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 37
Ошибка 4 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 41
Предупреждение 6 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 122
Предупреждение 7 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 123
Предупреждение 8 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 124
Предупреждение 9 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 125
Предупреждение 10 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 126
Предупреждение 11 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 127
Предупреждение 1 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 35
0
besh]<a
13 / 11 / 1
Регистрация: 02.11.2009
Сообщений: 194
24.05.2010, 20:43 #5
stdio iostream fstream conio 4 библиотеки для вывода на экран... хватило бы и первой
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
24.05.2010, 20:57  [ТС] #6
Цитата Сообщение от besh]<a Посмотреть сообщение
stdio iostream fstream conio 4 библиотеки для вывода на экран... хватило бы и первой
если оставить тока stdio то ошибок вместо 4 становиться 8.

Добавлено через 3 минуты
Добаваила скобки осталась одна ошибка
Компиляция:Ошибка 2 error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 36
Предупреждение 3 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 123
Предупреждение 4 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 124
Предупреждение 5 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 125
Предупреждение 6 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 126
Предупреждение 7 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 127
Предупреждение 8 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 128
Предупреждение 1 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 36

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
123
124
125
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
 
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <conio.h>
 
typedef struct  
{
    char name[100];
    char avtor[50];
    char tematika[100];
    int  godvipuska[10];
    char ISBN[100];
    char izdatelstvo[100];
}BOOK, *PBOOK;
 using namespace std;
const int Amax=255;
 
ostream& operator<<(ostream& out, BOOK &J)
 { 
     out<<"\n фамилия автора : "<<J.avtor;
     out<< "\n тематика книги : "<<J.tematika;
     out<<"\n год выпуска : "<<J.godvipuska;
     out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
     return out;
 }
FILE* fil = fopen("book txt", "r+t");
{
while( !feof(fil));
{
    fread(&book, sizeof(book), 1, fil);
}
 
fclouse(fil);
}
 
int _tmain()
{    
    setlocale (LC_ALL, "Russian");
    
    BOOK k[3], book;
    int i, j;
 
 
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
                        scanf_s("%s",k[i].name, Amax);
 
            printf ("введите фамилию автора\t");
                        scanf_s("%s",k[i].avtor, Amax);
 
            printf ("введите тематику книги\t");
                        scanf_s("%s",k[i].tematika, Amax);
 
            printf ("введите год выпуска книги\t");
                        scanf_s("%s",&k[i].godvipuska);
 
            printf ("введите ISBN книги\t");
                        scanf_s("%s",k[i].ISBN, Amax);
 
            printf ("введите издательство книги\t");
                    scanf_s("%s",k[i].izdatelstvo, Amax);
 
            printf("\n");
        }
 
      fclose(f);
 
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf (f, "%s %s %s %i %s %s \n", &k[i].name, &k[i].avtor, &k[i].tematika, &k[i].godvipuska, &k[i].ISBN, &k[i].izdatelstvo );
    }
      fclose(f);
 
 
for (i=0; i<3; i++)
      {
          printf("%s %s %s %i %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
    
FILE* fil = fopen("book txt", "w+t");
while(!feof(fil)){
 
fread(&book, sizeof(book), 1, fil); //Выводиде 
 
}
 
fclose(fil);
 
fclose(fil);
 
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].godvipuska;
  delete[] k[i].ISBN;
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
}
    _getch();
      return 0;
}
0
kazak
3051 / 2372 / 160
Регистрация: 11.03.2009
Сообщений: 5,437
Завершенные тесты: 1
24.05.2010, 20:58 #7
Строки 115-125 удалить, во всех scanf'ах убрать символы &, они сдесь лишние.
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
24.05.2010, 21:12  [ТС] #8
всеравно 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
123
124
125
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
 
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <conio.h>
 
typedef struct  
{
    char name[100];
    char avtor[50];
    char tematika[100];
    int  godvipuska[10];
    char ISBN[100];
    char izdatelstvo[100];
}BOOK, *PBOOK;
 using namespace std;
const int Amax=255;
 
ostream& operator<<(ostream& out, BOOK &J)
 { 
     out<<"\n фамилия автора : "<<J.avtor;
     out<< "\n тематика книги : "<<J.tematika;
     out<<"\n год выпуска : "<<J.godvipuska;
     out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
     return out;
 }
FILE* fil = fopen("book txt", "r+t");
{
while( !feof(fil));
{
    fread(&book, sizeof(book), 1, fil);
}
 
fclouse(fil);
}
 
int _tmain()
{    
    setlocale (LC_ALL, "Russian");
    
    BOOK k[3], book;
    int i, j;
 
 
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
                        scanf_s("%s",k[i].name, Amax);
 
            printf ("введите фамилию автора\t");
                        scanf_s("%s",k[i].avtor, Amax);
 
            printf ("введите тематику книги\t");
                        scanf_s("%s",k[i].tematika, Amax);
 
            printf ("введите год выпуска книги\t");
                        scanf_s("%s",&k[i].godvipuska);
 
            printf ("введите ISBN книги\t");
                        scanf_s("%s",k[i].ISBN, Amax);
 
            printf ("введите издательство книги\t");
                    scanf_s("%s",k[i].izdatelstvo, Amax);
 
            printf("\n");
        }
 
      fclose(f);
 
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf (f, "%s %s %s %i %s %s \n", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo );
    }
      fclose(f);
 
 
for (i=0; i<3; i++)
      {
          printf("%s %s %s %i %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
    
FILE* fil = fopen("book txt", "w+t");
while(!feof(fil)){
 
fread(&book, sizeof(book), 1, fil); //Выводиде 
 
}
 
fclose(fil);
 
 
 
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].godvipuska;
  delete[] k[i].ISBN;
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
}
    _getch();
      return 0;
}
Компилятор:
Ошибка 2 error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 37
Предупреждение 3 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 119
Предупреждение 4 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 120
Предупреждение 5 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 121
Предупреждение 6 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 122
Предупреждение 7 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 123
Предупреждение 8 warning C4154: удаление массива; выполнено преобразование к указателю c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 124
Предупреждение 1 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 36
0
kazak
3051 / 2372 / 160
Регистрация: 11.03.2009
Сообщений: 5,437
Завершенные тесты: 1
24.05.2010, 21:19 #9
Последний пост:
1) К какой функции относятся строки 33-41? Правильно ни к какой, на них компилятор и ругается.
2)
Цитата Сообщение от Luna17 Посмотреть сообщение
for (i=0; i<3; i++)
{
delete[] k[i].avtor;
delete[] k[i].godvipuska;
delete[] k[i].ISBN;
delete[] k[i].izdatelstvo;
delete[] k[i].name;
delete[] k[i].tematika;
}
удалить.
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
24.05.2010, 23:36  [ТС] #10
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
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
 
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <conio.h>
 
typedef struct  
{
    char name[100];
    char avtor[50];
    char tematika[100];
    int  godvipuska[10];
    char ISBN[100];
    char izdatelstvo[100];
}BOOK, *PBOOK;
 using namespace std;
const int Amax=255;
 
ostream& operator<<(ostream& out, BOOK &J)
 { 
     out<<"\n фамилия автора : "<<J.avtor;
     out<< "\n тематика книги : "<<J.tematika;
     out<<"\n год выпуска : "<<J.godvipuska;
     out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
     return out;
 }
FILE* fil = fopen("book txt", "r+t");
{
while( !feof(fil));
{
    fread(&book, sizeof(book), 1, fil);
}
 
fclouse(fil);
}
 
int _tmain()
{    
    setlocale (LC_ALL, "Russian");
    
    BOOK k[3], book;
    int i, j;
 
 
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
                        scanf_s("%s",k[i].name, Amax);
 
            printf ("введите фамилию автора\t");
                        scanf_s("%s",k[i].avtor, Amax);
 
            printf ("введите тематику книги\t");
                        scanf_s("%s",k[i].tematika, Amax);
 
            printf ("введите год выпуска книги\t");
                        scanf_s("%s",&k[i].godvipuska);
 
            printf ("введите ISBN книги\t");
                        scanf_s("%s",k[i].ISBN, Amax);
 
            printf ("введите издательство книги\t");
                    scanf_s("%s",k[i].izdatelstvo, Amax);
 
            printf("\n");
        }
 
      fclose(f);
 
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf (f, "%s %s %s %i %s %s \n", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo );
    }
      fclose(f);
 
 
for (i=0; i<3; i++)
      {
          printf("%s %s %s %i %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
    
FILE* fil = fopen("book txt", "w+t");
while(!feof(fil)){
 
fread(&book, sizeof(book), 1, fil); //Выводиде 
 
}
 
fclose(fil);
 
    _getch();
      return 0;
}
Всеравно идет ошибка при компиляции
Ошибка 2 error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) c:\users\вероника\documents\visual studio 2008\projects\16\16\16.cpp 37

Добавлено через 4 минуты
Цитата Сообщение от kazak Посмотреть сообщение
Последний пост:
1) К какой функции относятся строки 33-41? Правильно ни к какой, на них компилятор и ругается.
А это как я поняла, выше, это теоретически должен был быть поиск данных в файле по ключевому, полю, но я вроде напутала что то

Добавлено через 6 минут
А вообще так, норм прога вот, но в ней надо поиск сделать, и это не получается и в этом главная пролема
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
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
 
struct  BOOK
{
    char *name;
    char *avtor;
    char *tematika;
    int   *godvipuska;
    char *ISBN;
    char *izdatelstvo;
};
 using namespace std;
const int Amax=255;
 
ostream& operator<<(ostream& out, BOOK &J)
 { 
     out<<"\n фамилия автора : "<<J.avtor;
     out<< "\n тематика книги : "<<J.tematika;
     out<<"\n год выпуска : "<<J.godvipuska;
     out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
     return out;
 }
 
        
 
 
int _tmain()
{    
    setlocale (LC_ALL, "Russian");
    
    BOOK k[3];
    int i, j;
 
 
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
            k[i].name = new char [Amax];
            scanf_s("%s",k[i].name, Amax);
 
            printf ("введите фамилию автора\t");
            k[i].avtor = new char [Amax];
            scanf_s("%s",k[i].avtor, Amax);
 
            printf ("введите тематику книги\t");
            k[i].tematika = new char [Amax];
            scanf_s("%s",k[i].tematika, Amax);
 
            printf ("введите год выпуска книги\t");
            k[i].godvipuska = new int [Amax];
            scanf_s("%d",&k[i].godvipuska);
 
            printf ("введите ISBN книги\t");
            k[i].ISBN = new char [Amax];
            scanf_s("%s",k[i].ISBN, Amax);
 
            printf ("введите издательство книги\t");
            k[i].izdatelstvo = new char [Amax];
            scanf_s("%s",k[i].izdatelstvo, Amax);
 
            printf("\n");
        }
 
      fclose(f);
 
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf (f, "%s %s %s %d %s %s \n", &k[i].name, &k[i].avtor, &k[i].tematika, &k[i].godvipuska, &k[i].ISBN, &k[i].izdatelstvo );
    }
      fclose(f);
 
 
for (i=0; i<3; i++)
      {
          printf("%s %s %s %d %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
 
 
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].godvipuska;
  delete[] k[i].ISBN;
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
}
    _getch();
      return 0;
}
Добавлено через 1 час 58 минут
подскажите как можно сделать поиск в файле по ключевому полю, или для начала, как можно из 1ого файла в другой строки перенести. т е скопировать
0
Sudoki
124 / 64 / 1
Регистрация: 19.04.2010
Сообщений: 196
25.05.2010, 09:28 #11
Цитата Сообщение от Luna17 Посмотреть сообщение
const int Amax=255;
У Вас теперь все поля разной длины, поэтому его использовать бесполезно

Добавлено через 1 минуту
Ссори чет выше не посмотрел пост

Добавлено через 38 минут
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
#include <locale.h>
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
typedef struct  
{
        char name[100];
        char avtor[50];
        char tematika[100];
        char godvipuska[10];
        char ISBN[100];
        char izdatelstvo[100];
}BOOK, *PBOOK;
 
 
ostream& operator<<(ostream& out, BOOK &J)
 { 
         out<<"\n фамилия автора : "<<J.avtor;
         out<< "\n тематика книги : "<<J.tematika;
         out<<"\n год выпуска : "<<J.godvipuska;
         out<< "\n ISBN: "<<J.ISBN;
         out<<"\n издательство: "<<J.izdatelstvo;
         return out;
 }
 
 
int main()
{   
   setlocale (LC_ALL, "Russian");        
   BOOK book, b[3];
   int i;
   FILE *f;
 
 
    f=fopen("katalogizator.txt","w+t");
    if (!f){
        cout<<"Ошибка открытия файла"<<endl;
        getch();
        return 1;
    }   
    for (i=0; i<3; i++)  { 
        memset(&book, 0, sizeof(book));
        printf("Запись № %d \n",i+1);
        cout<<"введите название книги:\t";      
        scanf_s("%s",book.name, 100);       
        cout<<"введите фамилию автора:\t";
        scanf_s("%s",book.avtor, 100);      
        cout<<"введите тематику книги:\t";
        scanf_s("%s",book.tematika, 50);        
        cout<<"введите год выпуска книги:\t";
        scanf_s("%s",book.godvipuska, 10);
        cout<<"введите ISBN книги:\t";
        scanf_s("%s",book.ISBN, 100); 
        cout<<"введите издательство книги:\t";
        scanf_s("%s",book.izdatelstvo, 100);        
        printf("\n");
        fwrite(&book, sizeof(book), 1 , f);
    }
    fclose(f);
 
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)  {
       cout<<"Ошибка открытия файла";
       getch();
       return 1;
    }
    fread(b,sizeof(BOOK), 3, f);
    fclose(f);
  
    for (i=0; i<3; i++) {
        printf("Запись № %d \n",i+1);
        printf("название: %s\n",b[i].name);
        printf("фамилия автора: %s\n",b[i].avtor);
        printf("тематика: %s\n",b[i].tematika);
        printf("год выпуска: %s\n",b[i].godvipuska);
        printf("ISBN: %s\n",b[i].ISBN);
        printf("издательство: %s\n",b[i].izdatelstvo);
        printf("\n");
    };
    getch();
    return 0;
}
Вот пример который записывает и считывает с файла информацию.
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
26.05.2010, 20:42  [ТС] #12
А можете подсказать, что надо вставить вместо &&&&&&&&&&&&&&&&&&&&( я так место отметила), чтобы читать из файла строку для сравнения с переменной temp которая вводится с клавиатуры
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
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string.h>
struct  BOOK
{
    char *name;
    char *avtor;
    char *tematika;
    int *godvipuska;
    char *ISBN;
    char *izdatelstvo;
};
 using namespace std;
const int Amax=255;
ostream& operator<<(ostream& out, BOOK &J)
 { 
     out<<"\n фамилия автора : "<<J.avtor;
     out<< "\n тематика книги : "<<J.tematika;
     out<<"\n год выпуска : "<<J.godvipuska;
     out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
     return out;
 }
int main()
{    
    setlocale (LC_ALL, "Russian");
    BOOK k[3], h;
    int i;
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
            k[i].name = new char [Amax];
            scanf_s("%s",k[i].name, Amax);
 
            printf ("введите фамилию автора\t");
            k[i].avtor = new char [Amax];
            scanf_s("%s",k[i].avtor, Amax);
 
            printf ("введите тематику книги\t");
            k[i].tematika = new char [Amax];
            scanf_s("%s",k[i].tematika, Amax);
 
            printf ("введите год выпуска книги\t");
            k[i].godvipuska = new int [Amax];
            scanf_s("%d",&k[i].godvipuska);
 
            printf ("введите ISBN книги\t");
            k[i].ISBN = new char [Amax];
            scanf_s("%s",k[i].ISBN, Amax);
 
            printf ("введите издательство книги\t");
            k[i].izdatelstvo = new char [Amax];
            scanf_s("%s",k[i].izdatelstvo, Amax);
 
            printf("\n");
        }
      fclose(f);
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf_s (f, "%s %s %s %d %s %s \n", &k[i].name, &k[i].avtor, &k[i].tematika, &k[i].godvipuska, &k[i].ISBN, &k[i].izdatelstvo );
    }
      fclose(f);
for (i=0; i<3; i++)
      {
          printf(" %s %s %s %d %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
printf("введите название ключевого поля для поиска данных\t");
char *temp;
temp = new char [Amax];
scanf_s("%s", temp, Amax);
 
f=fopen("katalogizator.txt","r+t");
 
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
    {
if(strcmp(h.name,temp)== 0) printf(" \n Такая книга найдена в этой строке  %s %s %s %d %s %s ", h.name, h.avtor, h.tematika, h.godvipuska, h.ISBN, h.izdatelstvo, Amax);
 
else printf("\n Таких книг нет в строке %d"); 
    
}
fclose(f);
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].godvipuska;
  delete[] k[i].ISBN;
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
    _getch();
      return 0;
}
}
Добавлено через 1 час 44 минуты
помогите организовать структуру с whilе пока не закончится файл сравнивать строчку из файла с введеной с клавиатуры слова,( и есле найдены одинаковые - то вывести строчку - вот эта часть что в скобках есть, нужна та что перед этим)
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
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string.h>
struct  BOOK
{
    char *name;
    char *avtor;
    char *tematika;
    char  *godvipuska;
    char *ISBN;
    char *izdatelstvo;
};
 using namespace std;
const int Amax=255;
ostream& operator<<(ostream& out, BOOK &J)
 { 
     out<<"\n фамилия автора : "<<J.avtor;
     out<< "\n тематика книги : "<<J.tematika;
     out<<"\n год выпуска : "<<J.godvipuska;
     out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
     return out;
 }
int main()
{    
    setlocale (LC_ALL, "Russian");
    BOOK k[3], h;
    int i;
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
            k[i].name = new char [Amax];
            scanf_s("%s",k[i].name, Amax);
 
            printf ("введите фамилию автора\t");
            k[i].avtor = new char [Amax];
            scanf_s("%s",k[i].avtor, Amax);
 
            printf ("введите тематику книги\t");
            k[i].tematika = new char [Amax];
            scanf_s("%s",k[i].tematika, Amax);
 
            printf ("введите год выпуска книги\t");
            k[i].godvipuska = new char [Amax];
            scanf_s("%s",&k[i].godvipuska);
 
            printf ("введите ISBN книги\t");
            k[i].ISBN = new char [Amax];
            scanf_s("%s",k[i].ISBN, Amax);
 
            printf ("введите издательство книги\t");
            k[i].izdatelstvo = new char [Amax];
            scanf_s("%s",k[i].izdatelstvo, Amax);
 
            printf("\n");
        }
      fclose(f);
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf_s (f, "%s %s %s %s %s %s \n", &k[i].name, &k[i].avtor, &k[i].tematika, &k[i].godvipuska, &k[i].ISBN, &k[i].izdatelstvo );
    }
      fclose(f);
for (i=0; i<3; i++)
      {
          printf(" %s %s %s %s %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
printf("введите название ключевого поля для поиска данных\t");
char *temp;
temp = new char [Amax];
scanf_s("%s", temp, Amax);
 
f=fopen("katalogizator.txt","a+t");
 
while
{
 
if(strcmp(h.name,temp)== 0) printf(" \n Такая книга найдена в этой строке  %s %s %s %s %s %s ", h.name, h.avtor, h.tematika, h.godvipuska, h.ISBN, h.izdatelstvo, Amax);
 
else printf("\n Таких книг нет в строке %d"); 
    }
}
fclose(f);
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].godvipuska;
  delete[] k[i].ISBN;
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
    _getch();
      return 0;
}
}
Добавлено через 22 часа 39 минут
Подскажите, мне почему у меня в проге данные не записываются в файл, хотя по структуре вроде все так, есле не сложно помогите исправить
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
 
struct  BOOK
{
        char *name;
        char *avtor;
        char *tematika;
        int *godvipuska;
        char *ISBN;
        char *izdatelstvo;
};
 using namespace std;
const int Amax=255;
ostream& operator<<(ostream& out, BOOK &J)
 { 
         out<<"\n фамилия автора : "<<J.avtor;
         out<< "\n тематика книги : "<<J.tematika;
         out<<"\n год выпуска : "<<J.godvipuska;
         out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
         return out;
 }
int main()
{  
    setlocale (LC_ALL, "Russian");
    BOOK k[3],h;
    int i;
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
            k[i].name = new char [Amax];
            scanf("%s",k[i].name, Amax);
            
 
            printf ("введите фамилию автора\t");
            k[i].avtor = new char [Amax];
            scanf("%s",k[i].avtor, Amax);
 
 
            printf ("введите тематику книги\t");
            k[i].tematika = new char [Amax];
            scanf("%s",k[i].tematika, Amax);
 
 
            printf ("введите год выпуска книги\t");
            k[i].godvipuska = new int [Amax];
            scanf("%d",&k[i].godvipuska);
 
 
            printf ("введите ISBN книги\t");
            k[i].ISBN = new char [Amax];
            scanf("%s",k[i].ISBN, Amax);
 
 
            printf ("введите издательство книги\t");
            k[i].izdatelstvo = new char [Amax];
            scanf("%s",k[i].izdatelstvo, Amax);
 
 
            printf("\n");
        }
      fclose(f);
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf (f, "%s %s %s %d %s %s \n", &k[i].name, &k[i].avtor, &k[i].tematika, &k[i].godvipuska, &k[i].ISBN, &k[i].izdatelstvo );
    }
      fclose(f);
for (i=0; i<3; i++)
      {
          printf("%s %s %s %d %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
printf("введите название ключевого поля для поиска данных\t");
char *temp;
temp = new char [Amax];
scanf_s("%s", temp, Amax-1);
printf ("%s",temp);
int u=0;
f=fopen("katalogizator.txt","r+t");
{
h.avtor = new char [Amax];
h.godvipuska = new int;
h.ISBN = new char [Amax];
h.izdatelstvo = new char [Amax];
h.name = new char [Amax];
h.tematika = new char [Amax];
}
 while(!feof(f))
{
    printf("\ntest");
 fscanf(f, "%s %s %s %d %s %s \n", &h.name, &h.avtor, &h.tematika, &h.godvipuska, &h.ISBN, &h.izdatelstvo);
 
 if(strcmp(h.name,temp) == 0)
 {
    printf("\n Такая книга найдена в этой строке %s %s %s %d %s %s \n", &h.name, &h.avtor, &h.tematika, &h.godvipuska, &h.ISBN, &h.izdatelstvo, Amax);
    u++;
    break;
 }
  if (k==0) printf("\n Таких книг нет"); 
 }
 
fclose(f);
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].ISBN;
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
}
{
delete[] h.avtor; 
delete[] h.godvipuska; 
delete[] h.ISBN;
delete[] h.izdatelstvo ;
delete[] h.name;
}
        _getch();
          return 0;
 
}
0
26.05.2010, 20:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2010, 20:42
Привет! Вот еще темы с ответами:

Поиск в текстовом файле всех слов, заданных в другом текстом файле - C++
Вообщем такое задание: Поиск в текстовом файле всех слов, заданных в другом текстом файле; Не могу понять почему не работает: ...

Поиск по любому полю структуры - C++
Нужно сделать поиск по любому полю структуры(Имя, фамилия или дата рождения) Вот собственно код самой структуры: #include &lt;stdio.h&gt; ...

Есть-ли поиск по полю в STL? - C++
Писал программу. Дана структура. Надо реализовать ввод/вывод/сортировку по зарплате и по имени/поиск по зарплате. Данные хранить в списке....

В файле имеются 14 записей с полями. В начале отсортировать их по одному полю, потом по другому - C++
Имеется файл, в котором есть поля: №(номер), ФИО, дата рождения, место работы, стаж. Подскажите, как написать программу, чтобы в начале...


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

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

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