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

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

Войти
Регистрация
Восстановить пароль
 
garkeP91
50 / 50 / 5
Регистрация: 24.10.2010
Сообщений: 131
#1

Поиск в txt файле - C++

24.10.2010, 17:46. Просмотров 835. Ответов 3
Метки нет (Все метки)

Есть программа Телефонная книга. Программа со структурой. Информация сохраняется в 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
************************В файле описания функций:
//найти по фамилии
int* searchFam(char *fam, PhBook *PhB, int size)
{
    for(int i=0; i<size; i++)
        if (stricmp(PhB[i].fam, fam)==0)
            return i;
    return -1;
}
 
 
//найти по имени
int searchName(char *name, PhBook *PhB, int size)
{
    for(int i=0; i<size; i++)
        if (stricmp(PhB[i].name, name)==0)
            return i;
    return -1;
}
 
 
//найти по номеру
int searchPhone(char *phone, PhBook *PhB, int size)
{
    for(int i=0; i<size; i++)
        if(stricmp(PhB[i].phone, phone) == 0)
            return i;
        return -1;
}
 
************************В файле функции main:
case 3: //Search family
            cout<<"BBEDuTE qoAMuJluIO"<<endl;
            cin>>fam;
            num = searchFam(fam, PhB, size);
            if(num != -1)
            {
                cout<<"uCKOMA9l 3AnuCb: #"<<num+1<<endl;
                print(num+1, PhB, size);
            }
            else
                cout<<"nOuCK HE DAJl PE3yJlbTATOB"<<endl;*/
            break;
 
        case 4: //Search name
            cout<<"BBEDuTE uM9l"<<endl;
            cin>>name;
            num = searchName(name, PhB, size);
            if(num != -1)
            {
                cout<<"uCKOMA9l 3AnuCb: #"<<num+1<<endl;
                print(num+1, PhB, size);
            }
            else
                cout<<"nOuCK HE DAJl PE3yJlbTATOB"<<endl;
            break;
        case 5: //Search phone number
            cout<<"BBEDuTE HOMEP"<<endl;
            cin>>phone;
            num = searchPhone(phone, PhB, size);
            if(num != -1)
            {
                cout<<"uCKOMA9l 3AnuCb: #"<<num+1<<endl;
                print(num+1, PhB, size);
            }
            else
                cout<<"nOuCK HE DAJl PE3yJlbTATOB"<<endl;
            break;
Функции поиска возвращают индекс записи i. При поиске выводится только первая найденная запись. Т.е. если есть несколько записей с одинаковыми значениемя полей (фамилия, имя или телефон), будет выведена только одна запись. Я хочу, чтобы это работало иначе, чтобы выводились все записи, удовлетворяющие условиям поиска. Подскажите, что да как лучше сделать, переделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2010, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск в txt файле (C++):

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

Поиск в .txt файле и вывод на экран - C++
Такая проблема, необходимо осуществить поиск слова в .txt файле , если данной слово найдено, то распечатать строку с этим словом, и...

Поиск и замена слов в файле txt - C++
Как заменить и найти слова в файле txt на С++. То есть есть файл вот такой структуры AAA БББ BBB 111 222 ыыы

Поиск, сортировка и удаление строки в txt файле - C++
Помогите новичку с C++. Есть файл с данными вида: ФИО Дата рождения Образование и тд... Нужно организовать поиск, чтобы в...

Удалить в текстовом файле 1.txt все строки, которые встречаются в текстовом файле 2.txt - C++
например имеется текстовый файл 1.txt c таким содержанием 111 222 333 444 555 и имеется текстовый файл 2.txt c таким...

Посчитать сколько в файле input.txt символов и записать их количество в output.txt - C++
Поступил на информатику, задали рассказать что и как делает программа, я напишу как считаю правильно, а вы пожалуйста поправьте если где ...

3
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
24.10.2010, 17:51 #2
garkeP91, Либо пробегать в цикле, либо сами функции сделать без возврата, а чтобы они пробегали в цикле сравнивая и выводили значения.
0
garkeP91
50 / 50 / 5
Регистрация: 24.10.2010
Сообщений: 131
24.10.2010, 18:52  [ТС] #3
Как связать одно с другим? То, что нужен цикл, понятно. Я пробовал, чтобы в функциях в цикле было сравнение, заполнение массива и его последующий возврат. Или вы имеете ввиду, что в цикле нужно писать именно return i? Привидете пример хотя бы для одной из функций.. Я пока не совсм понимаю. Спасибо
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
24.10.2010, 18:57 #4
garkeP91, Что-то вроде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void searchPhone(char *phone, PhBook *PhB, int size)
{
        int cnt=0;
        for(int i=0; i<size; i++)
        {
                if(stricmp(PhB[i].phone, phone) == 0)
                {
                       ++cnt;
                       cout<<"uCKOMA9l 3AnuCb: #"<<num+1<<endl;
                       print(i+1, PhB, size);
                }
        }
        if(cnt==0)
            cout<<"There is no peoples with such tel. number\n";
}
1
24.10.2010, 18:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 18:57
Привет! Вот еще темы с ответами:

В файле input.txt содержатся сведения о группе студентов. переписать данные файла в файл output.txt, отсортировав их по возрастанию - C++
Добрый вечер!!! Я - новичок по работе с С++, помогите, пожалуйста, написать программу на этом языке. В файле input.txt содержатся сведения...

Написать программу- вводная информация в файле in.txt, выходная информация в out.txt - C++
Написать программу- вводная информация в файле in.txt, выходная информация в out.txt. Срочнооо..

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

Конец строки в txt файле - C++
Добрый день! Мне нужно считать значения двумерного массива. В txt файле хранятся, например, такие значения. 1 2 3 4 5 6 7 8 9 С...


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

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

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