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

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

Восстановить пароль Регистрация
 
Роман1
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 20
04.06.2014, 21:19     Из файла после определенного символа в нужной строке вывести оставшуюся строку на экран #1
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; 
                }
                
            } 
        
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 21:19     Из файла после определенного символа в нужной строке вывести оставшуюся строку на экран
Посмотрите здесь:

C++ Считать из файла до определенного символа
C++ Вывод части строки после определенного символа
C# C++ Задача поиск определенного символа в строке, запись того что после него в дргую строку C++
C++ В строке найти и вывести на экран все слова длиною в три символа
C++ Символы.Вывести на экран сивол после символа а
C++ Считать из файла от определенного символа(слова) до определенного символа(слова)
C++ Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке
Как обрезать строку типа wchar_t* до определенного символа? C++

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

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

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