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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Роман1
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 20
#1

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

04.06.2014, 21:19. Просмотров 525. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 21:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из файла после определенного символа в нужной строке вывести оставшуюся строку на экран (C++):

C# C++ Задача поиск определенного символа в строке, запись того что после него в дргую строку - C++
Вот пошагово: 1)Создать файл из символов, последний символ *(маркер) 2)После маркера записать ешё некоторое кол-во символов 3)...

Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить последнее вхождение символа “р” в строке и вывести строку, начиная с...

Символы.Вывести на экран сивол после символа а - C++
В тексте есть буква а, и она не последняя. Вывести на экран букву, следующую за ней.

Считать строку из файла и найти позицию заданного символа (непонятный символ в строке) - C++
Есть у меня вот такая вот строка 181x77х1 Лежит в файле. Я ее считываю и хочу найти позицию символа 'x' не получается. ...

В строке найти и вывести на экран все слова длиною в три символа - C++
Доброго дня, помогите пожалуйста с C++. Вот условие: 4. В строке найти и вывести на экран все слова длиною в три символа(Описать две...

Считать из файла от определенного символа(слова) до определенного символа(слова) - C++
Считываем текст из файла. Допустим от слова &quot;Qwerty&quot; до слова &quot;Uiop&quot;. Примерно догадываюсь как это реализовать FILE *f; char s;...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2014, 21:19
Привет! Вот еще темы с ответами:

Как обрезать строку типа wchar_t* до определенного символа? - C++
собственно вопрос в названии тему, запнулся казалось бы на самом простом, некогда не любил работу со строками...

Вывод части строки после определенного символа - C++
Написал функцию: #include &lt;iostream.h&gt; #include &lt;string.h&gt; void main() { char stroka; cin&gt;&gt;stroka; char*primer; ...

Считать из файла до определенного символа - C++
Как считать из файла строку до определенного символа, например до второй кавычки: &quot;Stroka s 12&quot; Пробовал так, но как-то не так...

Введите с клавиатуры строку символов, после чего выведите ее на экран вертикально (по одной букве в каждой строке). - C++
ДОБРОГО ВРЕМЕНИ СУТОК ВАМ))) помогите пожалуйста,если не трудно с выполнением задания.:umnik: Введите с клавиатуры строку символов,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru