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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Минимум среди элементво http://www.cyberforum.ru/cpp-beginners/thread1112821.html
Найти наименьший по абсолютной величине элемент среди элементов, расположенных между первым и вторым нулевыми элементами. Если по какой-либо причине найти такой элемент не удается, выдать об этом...
C++ Описать структуру Aeroflot Описать структуру с именем AEROFLOT,которая имеет следующие поля: 1 - название пункта назначения рейса; 2 - номер рейса; 3 - тип самолета. Написать программу,которая выполняет следующие действия:... http://www.cyberforum.ru/cpp-beginners/thread1112817.html
Выдать слова, имеющие в своём составе сочетание букв «но» C++
Ввести строку. На печать выдать слова, имеющие в своём составе сочетание букв «но». помогите пожалуйста.
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить
Ребят помогите кто понимает как это сделать? 1) сумму отрицательных элементов массива; 2) произведение элементов массива, расположенных между максимальным и минимальным элементами. ...
C++ преобразование текстового файла в двоичный, чтение данных из двоичного с++ http://www.cyberforum.ru/cpp-beginners/thread1112788.html
Пожалуйста помогите разобраться, не могу понять почему не работает программа. Нужно преобразовать текстовый файл в двоичный и читать данные из двоичного. Сама задача такова : На основе сводной...
C++ Сортировка массива до и после определенного элемента Есть одномерный массив из 20 последовательных элементов. Нужно: перемешать элементы массива, выбрать случайный элемент и отсортировать массив до этого элемента по возрастанию, после него - по... подробнее

Показать сообщение отдельно
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73

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

06.03.2014, 19:08. Просмотров 189. Ответов 0
Метки (Все метки)

Вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры. Если таких нет, выдать соответствующее сообщение.
после проверки строчки пишет: что таких людей нет. А надо чтоб все проверил и один раз выдал, но если писать :"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 минут
Поняла свою ошибку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru