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

Из файла после определенного символа в нужной строке вывести оставшуюся строку на экран - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Узнать, куда указывает strstr http://www.cyberforum.ru/cpp-beginners/thread1198459.html
Здравствуйте, у меня есть массив. С помощью STRSTR я проверяю его на наличие строки, но как мне на каком по счету элементе массива сработала функция STRSTR. Просто задача состоит в том что бы изменить элемент на котором срабатывает функция, вот мне и нужно узнать номер элемента в массиве. Помогите пожалуйста, очень срочно нужно.
C++ Класс "Таблица бомбардиров" Вообщем задача у меня такая, создать класс в С++, в данном случае, с помощью класса хочу реализовать таблицу бомбардиров... задаю фамилию игрока и минуту на которой он забил... программа компилится, но после ввода данных в массив выдает Break - Continue еще хотелось бы спросить, можно ли как то сделать, чтобы количество голов к примеру было не определенное, как у меня 10, а сколько ввел... http://www.cyberforum.ru/cpp-beginners/thread1198448.html
C++ Напишите программу для вычисления суммы и разности двух целых чисел
Напишите программу для вычисления суммы и разности двух целых чисел, а также умножения целого числа на число 2, целой части частного и остатка при делении целого числа на число 2. Программа не должна содержать стандартные операции сложения (+), вычитания (–), умножения (*), деления (/) и остатка от деления (%). Используйте поразрядные операторы. Вычисление целой части частного и остатка при...
C++ Directx SDK
D3DFont.h D3DUtil.h Где можно их найти? В directx sdk во всех версиях их нет.
C++ Создать иерархию классов, представляющих простое наследование. Базовый класс – строка символов (char *) http://www.cyberforum.ru/cpp-beginners/thread1198406.html
. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и замены местами последнего и предпоследнего слова в строке базового класса. При выполнении контрольных заданий необходимо: Если в задании требуется разработать класс, то...
C++ Разработать класс реализующий список (двунаправленная очередь) Разработать класс реализующий список (двунаправленная очередь). Элемент списка содержит информацию о товаре на складе фирмы. Элемент очереди содержит наименование товара, цену, количество и дату поставки. В классе реализовать методы поставки на склад, отгрузки со склада и формирования информации по выбранному товару. Если в задании требуется разработать класс, то он должен включать:... подробнее

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

Из файла после определенного символа в нужной строке вывести оставшуюся строку на экран - C++

04.06.2014, 21:19. Просмотров 500. Ответов 0
Метки (Все метки)

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
#include<iostream>
#include<string>
#include<conio.h>
#include<Windows.h>
#include<fstream>
#include<vector>
#include<stdio.h>
#include <iterator>
 
using namespace std;
 
class Table
{
    public:
        void set_depart(string table_depart)
        {
            depart=table_depart;
        }
        string get_depart()
        {
            return depart;
        }
        void set_stay(string table_stay)
        {
            stay=table_stay;
        }
        string get_stay()
        {
            return stay;
        }
        void show_wagon()
        {
        string str;
        
        int wagon[6]={1,2,3,4,5,6};
        int n=0, i=0;
        for(i=0; i<6; i++)
        {cout << "| " << wagon[i];
        cout << '|';
        }
        
        }
        
    private:
        string depart;
        string stay;
};
 
 
int main()
{   
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251); 
    setlocale(LC_ALL, "Russian");
    Table route, train;
        string depart = "";
        string stay= "";
    start: ;
    cout << "Введите пункт отправления: ";
    cin >> depart;
    cout << "Введите пункт назначения: ";
    cin >> stay;
 
    route.set_depart(depart);
    route.set_stay(stay);
 
    string str;
    int i=0;
    long c = 0;
    vector<string> v;
    char * file = "timetable.txt";
    ifstream fin(file);
    if(!fin.is_open())
    {cout << "Невозможно открыть файл!" << endl;
    _getch();
    return -1;
    }
    
    
    while(getline(fin, str))
    { 
        if(str.find(route.get_depart()) != string::npos && str.find(route.get_stay()) != string::npos)
        {
            v.insert(v.end(), str);
            cout << i <<". " << v[i] << endl;
            i++;
            c++;
            
        }
    }
    
    fin.close();
    if( !c )
    {
        cout <<"Рейсов по маршруту " << depart << " - " << stay << " нет! Введите другой маршрут." << endl;
        _getch();
        system("cls");
        goto start;
        
    }
    
    int who;
    cout <<endl << " Выбирите маршрут(нажмите цифру соотв.поезда)" << endl;
    cin >> who;
    system("cls");
    i++;
    if(who >= 0)
    {   int n=0;
        string start ="#";
        string str;
        cout << v[who] << endl;
        train.show_wagon();
        cout << endl <<" Введите место: ";
        cin >> n;
        
        if(n >= 1 && n <= 6)
        {
        char * file = "cost.txt";
        ifstream fin(file);
        if(!fin.is_open())
        {cout << "Невозможно открыть файл!" << endl;
        _getch();
        }
        while(getline(fin, str))
        {
        if(str.find(route.get_stay()) != string::npos)
            {
        str.erase(0, str.find(start) + start.length() + 1);
        cout << str << endl;
        }
        }
        }
                
        
    }
        
 
    _getch();
    return 0;
}
Содержимое файла: timetable.txt:
Харьков - Донецк Время прибытия: 10:43. Время отправления 13:43.
Харьков - Краматорск Время прибытия: 10:43. Время отправления 13:45.
Зуево - Кукуево Время прибытия: 10:43. Время отправления 13:23.
Харьков - Щебелинка Время прибытия: 11:43. Время отправления 13:22.
Харьков - Краматорск Время прибытия: 11:43. Время отправления 13:22.
Содержимое файла cost.txt:
Харьков - Донецк Время прибытия: 10:43. Время отправления 13:43.# Цена 58 грн.
Харьков - Краматорск Время прибытия: 10:43. Время отправления 13:45.# Цена 34 грн.
Зуево - Кукуево Время прибытия: 10:43. Время отправления 13:23.# Цена 12 грн.
Харьков - Щебелинка Время прибытия: 11:43. Время отправления 13:22.# Цена 13 грн.
Харьков - Краматорск Время прибытия: 11:43. Время отправления 13:22.# Цена 14 грн.

Добавлено через 9 часов 50 минут
Срочно нужна помощь..сам не могу разобраться

Добавлено через 10 часов 22 минуты
уже не надо..сам разобрался..там необходимо сравнивать строку выбранного с другими строками файла cost.txt c помощью функции strstr..они совпадают с нужной строкой и потом удаляем не нужное
немного сложновато..но по-другому не знаю как)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while(getline(fin, str))
        {
        
        if(str.find(route.get_depart()) != string::npos && str.find(route.get_stay()) != string::npos)
            {
                if(strstr(str.c_str(), v[who].c_str()))
                {
                str.erase(0, str.find(start) + start.length() + 1);
                cout << str << endl; 
                }
                
            } 
        
        }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru