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

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

Войти
Регистрация
Восстановить пароль
 
viktorrrr
44 / 44 / 1
Регистрация: 11.02.2010
Сообщений: 363
#1

Работа с файлом - C++

07.07.2011, 15:41. Просмотров 571. Ответов 12
Метки нет (Все метки)

Ранее уже выкладывал код. Поизменял. Поиск разработал. Но ни фига не работает)). Помогите найти. пожалуйста ошибку. В майне цикл не работает так, как требует того программа)
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
#include<iostream>
#include<fstream>
#include<iomanip>
#include<stdlib.h>
#include<cstring>
 
 
using namespace std;
 
//const int N=1024;
void Instruction(); //Инструкция
void Output(char *Fm,char *Nm, char *Nm_b); //форматирование вывода, Чтение из файла
void textFile(char *F,char *N, char *F_b);//Запись в файл
void  Search(char *, char *, char *); //Поиск имени, фамилии, отчеству
                                      // Поиск и запись в отдельный файл книги взятой читателем  
void Instruction() //Инструкция по работе с программой
{
    cout<<"Добро пожаловать на работу\n"<<
        "Нажмите любую клавишу, для начала работы"<<endl;
    cin.get();
    cout<<"Нажмите 1 чтобы записать новые поступившие книги(Фамилия,Имя, Отчество"<<endl;
    cout<<"Нажмите 2  для вывода имеющихся книг"<<endl;
    cout<<"Нажмите 3 для поиска книги по фамилии автора"<<endl;
}
 
void Output( char *Fm,char *Nm, char *Nm_b)
{
 
     ifstream File2("texot.txt");
       if(!File2){
                cerr<<"Fail ne mozet bitj otkrit";
                exit(1);
        }
        
        while(!File2.eof()){
        cout<<setiosflags(ios::left)<<setw(10)<<Fm<<setw(10)<<Nm<<setw(10)<<Nm_b;
        }
        File2.close();
 
  /* ifstream f;
    f.open("texot.txt");
 
    char *s=new char [N];
 
    while(!f.eof()){
        f.getline(s,N);
        cout<<s<<"\n";
    }
 
    f.close();
    delete [] s;
    f.close();*/
}
    
 
 
void textFile(char *F,char *N, char *F_b)//Запись в файл
{
    ofstream File("texot.txt");
    if(!File){
        cerr<<"fail ne mozet bitj otkrit"<<endl;
        exit(1);
        
    }
 
    while(cin>>F>>N>>F_b){
        File<<F<<N<<F_b<<endl;
        cout<<endl;
    }
    File.close();
}
 
void Search(char *Fm_s, char *Nm_s, char *Fb_s) //поиск
{
    char Fm_ss[20], Prov[20];
    cout<<"vvedite ima dlja poiska";
    cin>>Fm_ss;
    ifstream File3("texot.txt", ios::in);
       if(!File3){
                cerr<<"Fail ne mozet bitj otkrit";
                exit(1);
        }
       while(File3.getline(Prov,20)){
           if(strstr(Prov,Fm_ss)){
               cout<<"estj takaja familia"; //доделать
           }
           else
               cout<<"Nema";
       }
       File3.close();
}
int main()
{
    setlocale(LC_ALL,"Russian");
    
    Instruction();
    
    
    char vibor;
        
    do{
        char F_m[20], N_m[20],F_b_m[20];
        
        cin>>vibor;
        switch(vibor){
        case '1':
    textFile( F_m, N_m,  F_b_m);
    break;
    case '2':
    Output(F_m, N_m,  F_b_m);
    break;
    case '3':
        Search(F_m, N_m, F_b_m);
        break;
        default:
 
            cout<<"Неправильный симовол"<<endl;
            
    }
    }while(vibor!='0');
 
        
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2011, 15:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлом (C++):

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

Работа с файлом - C++
Программа для записи/прочитки текстовых файлов. Почему когда ввожу строку, в файл сохраняется только часть строки(до первого пробела)? ...

Работа с файлом - C++
Доброго времени суток . Нужна помощь . Суть задания заключается в том , чтобы считать информацию из файла , записать ее в какую-то...

Работа с файлом - C++
В двумерном массиве подсчитать сумму элементов в каждом столбце и вывести ответы в файл! Пример 1 2 3 4 5 6 7 8 9 в файл...

работа с файлом) - C++
Помогите пжлст написать прогу.Задание: Найти среднее количество знаков препинания в абзаце.Текст считывать с файла. Добавлено через...

Работа с файлом - C++
Пожалуйста, помогите решить задачку.. Написать на чистом C (без использования C++) консольную программу, которая: - Считывает с диска...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
07.07.2011, 16:10 #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
112
113
114
115
116
117
118
119
120
121
122
123
124
#include<iostream>
#include<fstream>
#include<iomanip>
#include<stdlib.h>
#include<cstring>
#include <conio.h>
 
 
using namespace std;
 
//const int N=1024;
void Instruction(); //Инструкция
void Output(char *Fm,char *Nm, char *Nm_b); //форматирование вывода, Чтение из файла
void textFile(char *F,char *N, char *F_b);//Запись в файл
void  Search(char *, char *, char *); //Поиск имени, фамилии, отчеству
                                      // Поиск и запись в отдельный файл книги взятой читателем  
void Instruction() //Инструкция по работе с программой
{
        cout<<"Добро пожаловать на работу\n"<<
                "Нажмите любую клавишу, для начала работы"<<endl;
        getch();
        cout<<"Нажмите 1 чтобы записать новые поступившие книги(Фамилия,Имя, Отчество"<<endl;
        cout<<"Нажмите 2  для вывода имеющихся книг"<<endl;
        cout<<"Нажмите 3 для поиска книги по фамилии автора"<<endl;
}
 
void Output( char *Fm,char *Nm, char *Nm_b)
{
 
     ifstream File2("texot.txt");
       if(!File2){
                cerr<<"Fail ne mozet bitj otkrit";
                exit(1);
        }
        
                while(!File2.eof()){
        cout<<setiosflags(ios::left)<<setw(10)<<Fm<<setw(10)<<Nm<<setw(10)<<Nm_b;
                }
                File2.close();
 
  /* ifstream f;
    f.open("texot.txt");
 
    char *s=new char [N];
 
    while(!f.eof()){
        f.getline(s,N);
        cout<<s<<"\n";
    }
 
    f.close();
    delete [] s;
        f.close();*/
}
        
 
 
void textFile(char *F,char *N, char *F_b)//Запись в файл
{
        ofstream File("texot.txt");
        if(!File){
                cerr<<"fail ne mozet bitj otkrit"<<endl;
                exit(1);
                
        }
 
        while(cin>>F>>N>>F_b){
                File<<F<<N<<F_b<<endl;
                cout<<endl;
        }
        File.close();
}
 
void Search(char *Fm_s, char *Nm_s, char *Fb_s) //поиск
{
        char Fm_ss[20], Prov[20];
        cout<<"vvedite ima dlja poiska";
        cin>>Fm_ss;
        ifstream File3("texot.txt", ios::in);
       if(!File3){
                cerr<<"Fail ne mozet bitj otkrit";
                exit(1);
        }
           while(File3.getline(Prov,20)){
                   if(strstr(Prov,Fm_ss)){
                           cout<<"estj takaja familia"; //доделать
                   }
                   else
                           cout<<"Nema";
           }
           File3.close();
}
int main()
{
        setlocale(LC_ALL,"Russian");
        
        Instruction();
        
        
        char vibor;
                
        do{
                char F_m[20], N_m[20],F_b_m[20];
                
                vibor = getch();
                switch(vibor){
                case '1':
        textFile( F_m, N_m,  F_b_m);
        break;
        case '2':
        Output(F_m, N_m,  F_b_m);
        break;
        case '3':
            Search(F_m, N_m, F_b_m);
            break;
        default:
            break;
                        
        }
        }while(vibor!='0');
 
                
        return 0;
}
не совсем понятно чего нужно ?
так будет работать ?)))
0
viktorrrr
44 / 44 / 1
Регистрация: 11.02.2010
Сообщений: 363
07.07.2011, 16:16  [ТС] #3
Цитата Сообщение от m1Rr0r Посмотреть сообщение
не совсем понятно чего нужно ?
так будет работать ?)))
Не работает. Надо, чтобы именно цикл в майне работал. Вот я выбираю цифру 1, начинаю забивать файл. После того как забил, я должен выйти(ctrl+z). Далее должен иметь возможность при нажатии цифры 2 вывести все, что я забил до ээтого в файл. Ну и, соответственно, поиск при нажатии цифры 3
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
07.07.2011, 16:40 #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
129
130
131
132
133
134
135
136
137
138
#include<iostream>
#include<fstream>
#include<iomanip>
#include<stdlib.h>
#include<cstring>
#include <conio.h>
 
 
using namespace std;
 
//const int N=1024;
void Instruction(); //Инструкция
void Output(char *Fm,char *Nm, char *Nm_b); //форматирование вывода, Чтение из файла
void textFile(char *F,char *N, char *F_b);//Запись в файл
void  Search(char *, char *, char *); //Поиск имени, фамилии, отчеству
                                      // Поиск и запись в отдельный файл книги взятой читателем  
void Instruction() //Инструкция по работе с программой
{
        /*cout<<"Добро пожаловать на работу\n"<<
                "Нажмите любую клавишу, для начала работы"<<endl;
        getch();*/
        cout<<"Нажмите 1 чтобы записать новые поступившие книги(Фамилия,Имя, Отчество"<<endl;
        cout<<"Нажмите 2  для вывода имеющихся книг"<<endl;
        cout<<"Нажмите 3 для поиска книги по фамилии автора"<<endl;
}
 
void Output( char *Fm,char *Nm, char *Nm_b)
{
 
    ifstream File2("C:\\texot.txt");
       if(!File2){
                cerr<<"Fail ne mozet bitj otkrit";
                exit(1);
        }
        
       File2.getline(Fm,20);
       File2.getline(Nm,20);
       File2.getline(Nm_b,20);
        cout<<setiosflags(ios::left)<<setw(10)<<Fm<<setw(10)<<Nm<<setw(10)<<Nm_b;
                
                File2.close();
                getch();
 
  /* ifstream f;
    f.open("texot.txt");
 
    char *s=new char [N];
 
    while(!f.eof()){
        f.getline(s,N);
        cout<<s<<"\n";
    }
 
    f.close();
    delete [] s;
        f.close();*/
}
        
 
 
void textFile(char *F,char *N, char *F_b)//Запись в файл
{
    ofstream File("C:\\texot.txt");
        if(!File){
                cerr<<"fail ne mozet bitj otkrit"<<endl;
                exit(1);
                
        }
 
        /*while(cin>>F>>N>>F_b){
                File<<F<<N<<F_b<<endl;
                cout<<endl;
        }*/
        cout<<"F: ";
        cin.getline(F,20);
        cout<<"\nN: ";
        cin.getline(N,20);
        cout<<"\nF_b: ";
        cin.getline(F_b,20);
        File<<F<<endl<<N<<endl<<F_b<<endl;
        File.close();
}
 
void Search(char *Fm_s, char *Nm_s, char *Fb_s) //поиск
{
        char Fm_ss[20], Prov[20];
        cout<<"vvedite ima dlja poiska";
        cin>>Fm_ss;
        ifstream File3("texot.txt", ios::in);
       if(!File3){
                cerr<<"Fail ne mozet bitj otkrit";
                exit(1);
        }
           while(File3.getline(Prov,20)){
                   if(strstr(Prov,Fm_ss)){
                           cout<<"estj takaja familia"; //доделать
                   }
                   else
                           cout<<"Nema";
           }
           File3.close();
}
int main()
{
        setlocale(LC_ALL,"Russian");
        
        cout<<"Добро пожаловать на работу\n"<<
                "Нажмите любую клавишу, для начала работы"<<endl;
        getch();
        
        
        
        char vibor;
                
        do{
            system("cls");
            Instruction();
                char F_m[20], N_m[20],F_b_m[20];
                vibor = getch();
                switch(vibor){
                case '1':
        textFile( F_m, N_m,  F_b_m);
        break;
        case '2':
        Output(F_m, N_m,  F_b_m);
        break;
                case '3':
                        Search(F_m, N_m, F_b_m);
                        break;
                default:
                        break;
                        
        }
        }while(vibor!='0');
 
                
        return 0;
}
а так ?
ctrl+z не нада жать )
ввод /вывод/выход работает, поиск не смотрел...
1
viktorrrr
44 / 44 / 1
Регистрация: 11.02.2010
Сообщений: 363
07.07.2011, 17:16  [ТС] #5
Весьма забавно, конечно, стало работать). В файл не записывает(. И выводит только последний введенный результат(
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
07.07.2011, 17:28 #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
#include<iostream>
#include<fstream>
#include<iomanip>
#include<stdlib.h>
#include<cstring>
#include <conio.h>
 
 
using namespace std;
 
//const int N=1024;
void Instruction(); //Инструкция
void Output(char *Fm,char *Nm, char *Nm_b); //форматирование вывода, Чтение из файла
void textFile(char *F,char *N, char *F_b);//Запись в файл
void  Search(char *, char *, char *); //Поиск имени, фамилии, отчеству
                                      // Поиск и запись в отдельный файл книги взятой читателем  
void Instruction() //Инструкция по работе с программой
{
        /*cout<<"Добро пожаловать на работу\n"<<
                "Нажмите любую клавишу, для начала работы"<<endl;
        getch();*/
        cout<<"Нажмите 1 чтобы записать новые поступившие книги(Фамилия,Имя, Отчество"<<endl;
        cout<<"Нажмите 2  для вывода имеющихся книг"<<endl;
        cout<<"Нажмите 3 для поиска книги по фамилии автора"<<endl;
        cout<<"Нажмите 0 для выхода\n";
}
 
void Output( char *Fm,char *Nm, char *Nm_b)
{
    ifstream File2("texot.txt");
    if(!File2){
        cerr<<"Fail ne mozet bitj otkrit";
        exit(1);
    }
    while(!File2.eof()){
        File2.getline(Fm,20);
        File2.getline(Nm,20);
        File2.getline(Nm_b,20);
        cout<<setiosflags(ios::left)<<setw(10)<<Fm<<setw(10)<<Nm<<setw(10)<<Nm_b<<endl;
    }
    File2.close();
    getch();
}
        
 
 
void textFile(char *F,char *N, char *F_b)//Запись в файл
{
    ofstream File("texot.txt", ios::app);
    if(!File){
        cerr<<"fail ne mozet bitj otkrit"<<endl;
        exit(1);
    }
    cout<<"F: ";
    cin.getline(F,20);
    cout<<"\nN: ";
    cin.getline(N,20);
    cout<<"\nF_b: ";
    cin.getline(F_b,20);
    File<<F<<endl<<N<<endl<<F_b<<endl;
    File.close();
}
 
void Search(char *Fm_s, char *Nm_s, char *Fb_s) //поиск
{
        char Fm_ss[20], Prov[20];
        cout<<"vvedite ima dlja poiska";
        cin>>Fm_ss;
        ifstream File3("texot.txt", ios::in);
       if(!File3){
                cerr<<"Fail ne mozet bitj otkrit";
                exit(1);
        }
           while(File3.getline(Prov,20)){
                   if(strstr(Prov,Fm_ss)){
                           cout<<"estj takaja familia"; //доделать
                   }
                   else
                           cout<<"Nema";
           }
           File3.close();
}
int main()
{
    setlocale(LC_ALL,"Russian");
    cout<<"Добро пожаловать на работу\n"<<
        "Нажмите любую клавишу, для начала работы"<<endl;
    getch();
    char vibor;
    do{
        system("cls");
        Instruction();
        char F_m[20], N_m[20],F_b_m[20];
        vibor = getch();
        switch(vibor){
            case '1':
                textFile( F_m, N_m,  F_b_m);
                break;
            case '2':
                Output(F_m, N_m,  F_b_m);
                break;
            case '3':
                Search(F_m, N_m, F_b_m);
                break;
            default:
                break;
        }
    }while(vibor!='0');
 
    return 0;
}
подправил, теперь пишет, дописывает, и читает вроде все верно
1
viktorrrr
44 / 44 / 1
Регистрация: 11.02.2010
Сообщений: 363
07.07.2011, 17:50  [ТС] #7
Я балдею))).... Так оригинально получилось. Спасибо большое))) Очень надеюсь, что поиск смогу реализовать))
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
07.07.2011, 19:07 #8
всегда пожлст)
сейчас попробую поиск помочь...

Добавлено через 1 час 14 минут
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
#include<iostream>
#include<fstream>
#include<iomanip>
#include<stdlib.h>
#include<cstring>
#include <conio.h>
 
 
using namespace std;
 
 
void Instruction(); //Инструкция
void Output(char *Fm,char *Nm, char *Nm_b); //форматирование вывода, Чтение из файла
void textFile(char *F,char *N, char *F_b);//Запись в файл
void  Search(char *Fm, char *Nm, char *Fm_b); //Поиск имени, фамилии, отчеству
                                      // Поиск и запись в отдельный файл книги взятой читателем  
void Instruction() //Инструкция по работе с программой
{
    cout<<"Нажмите 1 чтобы записать новые поступившие книги(Фамилия,Имя, Отчество"<<endl;
    cout<<"Нажмите 2  для вывода имеющихся книг"<<endl;
    cout<<"Нажмите 3 для поиска книги по фамилии автора"<<endl;
    cout<<"Нажмите 0 для выхода\n";
}
 
void Output( char *Fm,char *Nm, char *Nm_b)
{
    char buff[512]={0};
    char *ptr = NULL;
 
    ifstream File2("texot.txt");
    if(!File2){
        cerr<<"Fail ne mozet bitj otkrit";
        exit(1);
    }
    while(!File2.eof()){
        File2.getline(buff,512);
        ptr = strtok(buff,"|");
 
        strcpy(Fm, ptr);
        ptr = strtok(NULL,"|");
        strcpy(Nm, ptr);
        ptr = strtok(NULL,"|");
        strcpy(Nm_b, ptr);
 
        cout<<setiosflags(ios::left)<<setw(10)<<Fm<<setw(10)<<Nm<<setw(10)<<Nm_b<<endl;
        if(File2.peek()==-1)
        {
            break;
        }
    }
    File2.close();
    getch();
}
        
 
 
void textFile(char *F,char *N, char *F_b)//Запись в файл
{
        ofstream File("texot.txt", ios::app);
        if(!File){
                cerr<<"fail ne mozet bitj otkrit"<<endl;
                exit(1);
        }
        cout<<"F: ";
        cin.getline(F,20);
        cout<<"\nN: ";
        cin.getline(N,20);
        cout<<"\nF_b: ";
        cin.getline(F_b,20);
        File<<"|"<<F<<"|"<<N<<"|"<<F_b<<"|"<<endl;
        File.close();
}
 
void Search(char *Fm, char *Nm, char *Fm_b) //поиск
{
    char vibor=0;
    char *ptr = NULL;
    char buff[512]={0}, str[20]={0};
    bool state = false;
    ifstream File3("texot.txt", ios::in);
 
    if(!File3){
            cerr<<"Fail ne mozet bitj otkrit";
            exit(1);
        }
 
    cout<<"Используем для поиска: \n";
    cout<<"1. Фамилию.\n";
    cout<<"2. Имя.\n";
    cout<<"3. Отчество.\n";
 
    do{
        vibor = getch();
        if(vibor=='1' || vibor=='2' || vibor=='3')
            break;
    }while(true);
 
    switch(vibor)
    {
    case '1':
        cout<<"Введите фамилию: ";
        cin.getline(str,20);
        
        while(!File3.eof())
        {
            //читаем строку и разбираем ее на более мелкие - фам/имя/отч.
            //********************************
            File3.getline(buff,512);//
 
            ptr = strtok(buff,"|");
            strcpy(Fm, ptr);
            ptr = strtok(NULL,"|");
            strcpy(Nm, ptr);
            ptr = strtok(NULL,"|");
            strcpy(Fm_b, ptr);
            //********************************
            if(strcmp(Fm,str)==0)
            {
                state = true;
                break;
            }
            if(File3.peek()==-1)
            {
                break;
            }
        }
        break;
    case '2':
        cout<<"Введите фамилию: ";
        cin.getline(str,20);
        
        while(!File3.eof())
        {
            //читаем строку и разбираем ее на более мелкие - фам/имя/отч.
            //********************************
            File3.getline(buff,512);//
 
            ptr = strtok(buff,"|");
            strcpy(Fm, ptr);
            ptr = strtok(NULL,"|");
            strcpy(Nm, ptr);
            ptr = strtok(NULL,"|");
            strcpy(Fm_b, ptr);
            //********************************
            if(strcmp(Nm,str)==0)
            {
                state = true;
                break;
            }
            if(File3.peek()==-1)
            {
                break;
            }
        }
        break;
    case '3':
        cout<<"Введите фамилию: ";
        cin.getline(str,20);
        
        while(!File3.eof())
        {
            //читаем строку и разбираем ее на более мелкие - фам/имя/отч.
            //********************************
            File3.getline(buff,512);//
 
            ptr = strtok(buff,"|");
            strcpy(Fm, ptr);
            ptr = strtok(NULL,"|");
            strcpy(Nm, ptr);
            ptr = strtok(NULL,"|");
            strcpy(Fm_b, ptr);
            //********************************
            if(strcmp(Fm_b,str)==0)
            {
                state = true;
                break;
            }
            if(File3.peek()==-1)
            {
                break;
            }
        }
        break;
    default:
        break;
    }
    if(state)
    {
        cout<<"Записи есть\n";
    }
    else
    {
        cout<<"Записей нет\n";
    }
    File3.close();
    getch();
}
int main()
{
        setlocale(LC_ALL,"Russian");
        cout<<"Добро пожаловать на работу\n"<<
                "Нажмите любую клавишу, для начала работы"<<endl;
        getch();
        char vibor;
        do{
                system("cls");
                Instruction();
                char F_m[20], N_m[20],F_b_m[20];
                vibor = getch();
                switch(vibor){
                        case '1':
                                textFile( F_m, N_m,  F_b_m);
                                break;
                        case '2':
                                Output(F_m, N_m,  F_b_m);
                                break;
                        case '3':
                                Search(F_m, N_m,  F_b_m);
                                break;
                        default:
                                break;
                }
        }while(vibor!='0');
 
        return 0;
}
много текста лишнего, Но вроде работает...
как пример думаю сойдетЪ )
1
viktorrrr
44 / 44 / 1
Регистрация: 11.02.2010
Сообщений: 363
07.07.2011, 19:27  [ТС] #9
Вот теперь я начал реально путаться. Надо время потратить, что б разобраться как код работает) Но программа выполняет только функцию заполнения. или я что-тоьне так делаю. Поиск и вывод вылетают с ошибкой
0
voral
452 / 433 / 66
Регистрация: 16.03.2008
Сообщений: 2,104
07.07.2011, 19:41 #10
C++
1
 do{                 vibor = getch();                 if(vibor=='1' || vibor=='2' || vibor=='3')                         break;         }while(true);
Вот это бы цикл может лучше так:
C
1
while (((vibor = getch())<'1')||(vibor>'3'))  ;
1
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
07.07.2011, 19:51 #11
viktorrrr,
если валяться ошибки, используй предыдущий пример там где работает запись и вывод
а поиск придумай сам )

voral,
Добавлено через 3 минуты
Цитата Сообщение от voral Посмотреть сообщение
C++
1
 do{                 vibor = getch();                 if(vibor=='1' || vibor=='2' || vibor=='3')                         break;         }while(true);
Вот это бы цикл может лучше так:
C
1
while (((vibor = getch())<'1')||(vibor>'3'))  ;
может и лучше )
0
viktorrrr
44 / 44 / 1
Регистрация: 11.02.2010
Сообщений: 363
07.07.2011, 21:21  [ТС] #12
Прошу прощения. Видюха умерла. Кое-как нашел другую. Счаз попробую дрова найти. Тут в деревне вообще связь плохая. Пожалуйста, не покидайте меня))))
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
07.07.2011, 21:37 #13
чем помочь ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2011, 21:37
Привет! Вот еще темы с ответами:

Работа с файлом - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; struct STUDENT // структура STUDENT { string name; ...

Работа с файлом - C++
Добрый вечер. Нужно подсчитать количество точек, попадающих в круг радиуса 4 с центром в начале координат. На паскале такую прогу уже делал...

If работа с файлом - C++
Часть кода в которой я записываю строки в файл,по параметрам которые совпадают,как записать те строки в которых нет совпадение? как...

Работа с файлом в С++ - C++
Всем привет! Я никогда не работал с С++, но возникла необходимость чтения-записи в файл на С++. А если еще точнее Embedded C++. Не...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.07.2011, 21:37
Ответ Создать тему
Опции темы

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