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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Узнать, куда указывает strstr http://www.cyberforum.ru/cpp-beginners/thread1198459.html
Здравствуйте, у меня есть массив. С помощью STRSTR я проверяю его на наличие строки, но как мне на каком по счету элементе массива сработала функция STRSTR. Просто задача состоит в том что бы...
C++ Класс "Таблица бомбардиров" Вообщем задача у меня такая, создать класс в С++, в данном случае, с помощью класса хочу реализовать таблицу бомбардиров... задаю фамилию игрока и минуту на которой он забил... программа... 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. Просмотров 510. Ответов 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; 
                }
                
            } 
        
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru