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

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

Войти
Регистрация
Восстановить пароль
 
mrhankey
Сообщений: n/a
#1

Обработка файлов в c++ - C++

30.11.2009, 19:56. Просмотров 926. Ответов 0
Метки нет (Все метки)

Ребята моя программа создаёт базу данных простенькую, и всё введенное в консоль сохраняет в txt файл. Мне нужно её доработать так чтобы я мог осуществить поиск по этой базе и отредактировать найденные данные (то есть прописать новые)
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
#define _CRT_SECURE_NO_WARNINGS
//-------------------------------------------------------------------------
#include <stdio.h>
 #include <conio.h>  
 #include <math.h>
 #include <locale.h>
 #include <string.h>
 #include <time.h>
#include <stdlib.h>
#include "windows.h"
//------------------------------------------------------------------------
void Convert866to1251(char *dest)
{
    const char t[] =
        "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп"
        "                                                "
        "рстуфхцчшщъыьэюяЁё              "; // t - строка длиной 128 символов
 
    for(int i = 0; dest[i]!=0; i++ )
    {
        int j = (unsigned char)dest[i] - 128; // получаем код символа - 128 (это будет позиция в строке t)
        if( j>=0 ) // если код символа был больше 127 (т.е. может понадобится его перекодировать)
            if( t[j]!=' ' ) // если в строке t не пробел (т.е. это буква, которую нужно заменить на нужную)
                dest[i] = t[j]; // то заменяем
    }
}
//-------------------------------------------------------------------------
void error()
{
    printf("\nВведённый номер не соответствует ни одному пункту меню!\nНажмите любую клавишу для повтора ввода номера!\nНадеемся со второго раза у вас всё получится!\n");
    _getch();
}
//-------------------------------------------------------------------------
struct georeki       
{   
    char namereka [15];
    char mestopolog [20];
    int  dlina,glubina;
} ;
//-------------------------------------------------------------------------
 
//-------------------------------------------------------------------------
int main ()
 
{ int i,n=0;
    setlocale(LC_ALL,".1251");
 printf("________________________________________________________________________________\n");
 printf("         Программа, которая создаёт базу данных «География.Реки».\n        Программа обладает функциями заполнения и обработки файла\n             в которой хранится база данных «География.Реки».\n");
 printf("________________________________________________________________________________");
printf("       Программу выполнил:\n       Студент группы ИТ-119 Ковалёв Денис, каф. АСОИУ, OмГТУ, 2009\n\n");
bool flag = 0;
    FILE *f;
    char file_name[200];
file_name[0]=0;
while (flag==0){
    if (file_name[0]==0){
 printf("Введите имя файла: ");
 fflush(stdin);
scanf("%199[^\n]s",file_name);
    } if (file_name[0]!=0) flag=1;
}
 
 while (true){system("cls");
     printf("________________________________________________________________________________\n");
 printf("         Программа, которая создаёт базу данных «География.Реки».\n        Программа обладает функциями заполнения и обработки файла\n             в которой хранится база данных «География.Реки».\n");
 printf("________________________________________________________________________________");
printf("       Программу выполнил:\n       Студент группы ИТ-119 Ковалёв Денис, каф. АСОИУ, OмГТУ, 2009\n\n"); 
printf("\nФайл %s успешно создан!\nЖелаем удачи с дальнейшей обработкой данного файла!\n\n",file_name);
printf("1.Заполения файла %s данными\n",file_name);
printf("2.Редактирование файла %s\n",file_name);
 printf("3.Выход из программы\n");
 fflush(stdin);
 printf("\nВведите номер пункта меню для продолжения: ");
char k;
scanf("%c",&k);
switch(k){
case '1':
{
setlocale(LC_ALL,".1251");
f = fopen( file_name, "w+" ); 
struct georeki z [20];
system("cls");          
 
 
if (f == NULL)
{
    printf("Couldn't write to file:  '%s'...\n",file_name);
    return -1;
}
 
printf("Введите количество рек: ");
scanf ("%d", &n);
fprintf(f,"Название реки\tМестположение реки\tГлубина реки\tДлина реки\n");
if (f!=NULL){
 
                         for (i=0; i<n; i++)
                                              {
                                                printf("Введите название %u реки: ",i+1);
                                                scanf ("%s", &z[i].namereka);
                                                setlocale( LC_ALL, ".1251" );
                                                Convert866to1251(z[i].namereka);
                                               fprintf (f,"%13.13s\t",z[i].namereka);
                                                printf ("Введите местоположение реки: ");
                                                scanf ("%s", &z[i].mestopolog);
                                                setlocale( LC_ALL, ".1251" );
                                                Convert866to1251(z[i].mestopolog);
                                                fprintf(f,"%18.18s\t",z[i].mestopolog);
                                                printf ("Введите глубину реки в метрах: ");
                                                scanf ("%d", &z[i].glubina);
                                                fprintf(f,"%12.d\t",z[i].glubina);
                                                printf ("Введите длину реки в метрах: ");
                                                scanf ("%d",&z[i].dlina);
                                                fprintf(f,"%10.d\n",z[i].dlina);
                                              }
                        
}
fclose(f);
printf("\n");
printf("Данные вводимые вами с клавиатуры были успешно сохранены в файл %s\n\nДля перезаписи данных в файле %s нужно выбрать первый пункт меню.",file_name,file_name);
printf("\n\nДля возврата к меню нажмите любую клавишу\n");
_getch();
break;
}
case '2': ;
 
case '3': return -1;
 default: error();system("cls");break;
}
 }
}
//-------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2009, 19:56     Обработка файлов в c++
Посмотрите здесь:

обработка файлов C++
C++ Создание и обработка файлов
C++ обработка файлов
C++ c++ обработка файлов
Обработка текстовых файлов C++
C++ обработка файлов
C++ обработка файлов
Создание и обработка файлов C++
Обработка файлов C++
C++ Обработка файлов
C++ Обработка текстовых файлов
C++ Обработка файлов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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