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

Вывести только предложения, содержащие введенное слово - C++

Восстановить пароль Регистрация
 
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
06.03.2014, 19:08     Вывести только предложения, содержащие введенное слово #1
Вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры. Если таких нет, выдать соответствующее сообщение.
после проверки строчки пишет: что таких людей нет. А надо чтоб все проверил и один раз выдал, но если писать :"break" то он выходит из цикла и не проверяет дальше.

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
#include <iostream>
#include <fstream>
#include <cstring>
#include <windows.h>
#include <iomanip>
#include <ctype.h>
using namespace std;
 
struct ZNAK
{
    char name[20];
    char surname[20];
    char zodiak[10];
    int birthday[3];
};
void print(ZNAK* Text, const int n);
void fill(ZNAK* Text, const int n, char* file);
void poisk(ZNAK* Text, const int n, char* file);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    const int n = 10;
    ZNAK Text[n];
    char* file = "J:\\Users\\Admin\\Desktop\\fail\\Text.txt";
    fill(Text, n, file);
    print(Text, n);
    cout << '\n';
 
    poisk(Text,n,file);
    return 0;
}
void fill(ZNAK* Text, const int n, char* file)
{
    fstream fin(file);
    int i = 0;
    char date[12];
    while ((!fin.eof()) && (i < n)){
        fin >> Text[i].name;
        fin >> Text[i].surname;
        fin >> Text[i].zodiak;
        fin >> date;
        char* token;
        token = strtok(date, ".");
        Text[i].birthday[0] = atoi(token);
        token = strtok(NULL, ".");
        Text[i].birthday[1] = atoi(token);
        token = strtok(NULL, ".");
        Text[i].birthday[2] = atoi(token);
        i++;
    }
    fin.close();
}
void print(ZNAK* Text, const int n)
{
    for (int i = 0; i < n; i++)
        cout << setw(12) << Text[i].name << setw(12) << Text[i].surname << setw(12) << Text[i].zodiak << setw(8)
        << Text[i].birthday[0] << '.' << Text[i].birthday[1] << '.' << Text[i].birthday[2] << endl;
}
void poisk(ZNAK* Text, const int n, char* file)
{
    char word [10];
    cin>>word;
    fstream fin(file);
    while(!fin.eof()) {
        string s = "";
    getline(fin,s);
    if(s.find(word,0) != -1)
    {cout << s << endl;}
    else cout << "Нет людей, родившихся под введенным знаком";
    }
    fin.close();
}
Добавлено через 1 час 5 минут
Поняла свою ошибку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2014, 19:08     Вывести только предложения, содержащие введенное слово
Посмотрите здесь:

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

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

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

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