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

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

Войти
Регистрация
Восстановить пароль
 
Dark Illusion
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 31
#1

Переделать программу, чтобы вывод осуществлялся в текстовый файл - C++

03.03.2013, 18:52. Просмотров 404. Ответов 5
Метки нет (Все метки)

Здравствуйте. Помогите, пожалуйста, переделать программу, чтобы ввод и вывод данных осуществлялся в текстовые файлы (input, output). Вот задание:
В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны:
- номер рейса;
- тип автобуса;
- пункт назначения;
- время отправления;
- время прибытия на конечный пункт.
Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт на-значения раньше заданного времени.
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
#include <iostream>
#include <string.h>
#include <iomanip>
using namespace std;
struct Trip                                         
{                                                   
          
    int      number;                                   
    char*    type;                             
    char*     destination;                          
    double   otTime;                                
    double   prTime;                            
}; 
int main() {
    char* type = new char[20];
 
struct Trip indexes[100];
 char dPoint[20];
    double time = 0.0;
    int  q,i;
 
 
 
cout << "Vvedite kolichestvo reisov: ";
cin >> q;
for ( i = 0; i < q; i++)
{
    indexes[i].destination = new char[20];
        indexes[i].type = new char[20];
}
for ( i = 0; i < q; i++) 
{
cout << "-------------------------------" << endl;
cout << "Nomer reisa: "; 
cin >> indexes[i].number;
cout << "Tip reisa: "; 
cin >> indexes[i].type;
cout << "Mesto nazhacheniya: ";
cin >> indexes[i].destination;
cout << "Vremya otpravleniya: "; 
cin >> indexes[i].otTime;
cout << "Vremya pribitiya: "; 
cin >> indexes[i].prTime;
cout << "-------------------------------" << endl;
 
}
 
 cout <<"Vvedite mesto naznacheniya: "<<endl;
   cin.get();
   cin.getline(dPoint, 20);
    cout<<"Vvedite vremya pribitiya(hours.minutes): ";
    cin >> time;
    cout<<endl<<"-----------------------------------------------" <<endl;
    for( i=0; i < q; i++)
    {
    char *str  = indexes[i].destination;
        if(strcmp(dPoint, str) == 0)
        if(indexes[i].prTime < time)
        {
           cout.width(21);
           cout <<"Nomer reysa: "<<indexes[i].number<<endl;
           cout.width(21);
           cout<<"Tip reysa: "<<indexes[i].type<<endl;
           cout.width(21);
           cout<<"Mesto nazhacheniya: "<<indexes[i].destination<<endl;
           cout.width(19);
           cout<<"Vremia otpravleniya: "<<fixed<<setprecision(2)<<indexes[i].otTime<<endl;
           cout.width(21);
           cout<<"Vremya pribitiya: "<<fixed<<setprecision(2)<<indexes[i].prTime << endl;
           cout <<"-----------------------------------------------" << endl;
            
        }
 
    }
 
    return 0;
}
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 18:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переделать программу, чтобы вывод осуществлялся в текстовый файл (C++):

Файл: Изменить программу таким образом чтобы ввод исходных данных осуществлялся из файла, результат также должен выводиться в файл - C++
Помогите разобраться с этой проблемой, исходную задачу я написал, а вот как считать из файла не получается. Необходимо изменить программу...

Вывод в текстовый файл - C++
Помогите доделать программу, нужно что бы все что в консоли отображается выводилось в текстовый файл. Заранее спасибо) #include...

Вывод в текстовый файл - C++
Даны сведения о книгах, поступивших в библиотеку: ФИО автора, название книги, название издательства, год издания, дата поступления книги в...

Вывод в текстовый файл - C++
Подскажите, пожему не получается вывести в файл все элементы двоичного дерева поиска, а только первый? void Book::Save() { FILE *f; ...

Вывод ошибок в текстовый файл - C++
Здравствуйте, допустим при компиляции у меня выскакивают ошибки как можно код этих ошибок записать в файл? При чем должно быть 2 колонки...

Вывод строки в текстовый файл - C++
Вместо строки появляется нечто вроде 25d3fe4 Подскажите пожалуйста, в чем ошибка? ofstream fout; ...

5
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
03.03.2013, 19:48 #2
делаешь
C++
1
#include <fstream>
в main
C++
1
std::ofstream ofs("filename.txt");
заменяешь все cout на ofs
после вывода добавляешь
C++
1
ofs.close();
и будет тебе счастье))
1
Dark Illusion
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 31
05.03.2013, 13:25  [ТС] #3
Кудаив, Сделал всё, как вы сказали, но почему-то не записывает она результаты в текстовый файл, она его создаёт, но он оказывается пустым
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.03.2013, 04:22 #4
Цитата Сообщение от Dark Illusion Посмотреть сообщение
Кудаив, Сделал всё, как вы сказали, но почему-то не записывает она результаты в текстовый файл, она его создаёт, но он оказывается пустым
Код покажите.
0
Dark Illusion
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 31
06.03.2013, 12:52  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Код покажите.
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
#include <iostream>
#include <string.h>
#include <iomanip>
#include <fstream>
using namespace std;
struct Trip                                         
{                                                   
          
    int      number;                                   
    char*    type;                             
    char*     destination;                          
    double   otTime;                                
    double   prTime;                            
}; 
int main() {
    char* type = new char[20];
    std::ofstream ofs("filename.txt");
struct Trip indexes[100];
 char dPoint[20];
    double time = 0.0;
    int  q,i;
 
 
 
cout << "Vvedite kolichestvo reisov: ";
cin >> q;
for ( i = 0; i < q; i++)
{
    indexes[i].destination = new char[20];
        indexes[i].type = new char[20];
}
for ( i = 0; i < q; i++) 
{
cout << "-------------------------------" << endl;
cout << "Nomer reisa: ";
cin >> indexes[i].number;
cout << "Tip reisa: ";
cin >> indexes[i].type;
cout << "Mesto nazhacheniya: ";
cin >> indexes[i].destination;
cout << "Vremya otpravleniya: ";
cin >> indexes[i].otTime;
cout << "Vremya pribitiya: ";
cin >> indexes[i].prTime;
cout << "-------------------------------" << endl;
 
}
 
 cout <<"Vvedite mesto naznacheniya: "<<endl;
   cin.get();
   cin.getline(dPoint, 20);
    cout<<"Vvedite vremya pribitiya(hours.minutes): ";
    cin >> time;
    ofs<<endl<<"-----------------------------------------------" <<endl;
    for( i=0; i < q; i++)
    {
    char *str  = indexes[i].destination;
        if(strcmp(dPoint, str) == 0)
        if(indexes[i].prTime < time)
        {
           ofs.width(21);
           ofs <<"Nomer reysa: "<<indexes[i].number<<endl;
           ofs.width(21);
           ofs<<"Tip reysa: "<<indexes[i].type<<endl;
           ofs.width(21);
           ofs<<"Mesto nazhacheniya: "<<indexes[i].destination<<endl;
           ofs.width(19);
           ofs<<"Vremia otpravleniya: "<<fixed<<setprecision(2)<<indexes[i].otTime<<endl;
           ofs.width(21);
           ofs<<"Vremya pribitiya: "<<fixed<<setprecision(2)<<indexes[i].prTime << endl;
           ofs <<"-----------------------------------------------" << endl;
           ofs.close();
        }
 
    }
 
    return 0;
}
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.03.2013, 14:01 #6
Цитата Сообщение от Dark Illusion Посмотреть сообщение
не записывает она результаты в текстовый файл
Записывает, если правильные данные вводить. Введённый пункт назначения должен совпадать с имеющимся и введённое время должно быть больше, чем вермя прибытия для этого рейса. Тогда будет запись в файле. Но всё это не так делается.
В файл нужно записывать все рейсы, и писать только значения, без названий полей структуры и пр. Для поиска нужного рейса из файла, считывать структуры из файла и анализировать нужные поля.

Добавлено через 26 минут
Как-то так:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
 
struct Trip                                         
{                                                   
    int      number;                                   
    char*    type;                             
    char*    destination;                          
    double   otTime;                                
    double   prTime;                            
}; 
 
int main() 
{
 cout << "Vvedite kolichestvo reisov: ";
 int q;
 cin >> q;
 
 Trip *indexes = new Trip[q];
 
 int i;
 for ( i = 0; i < q; i++)
 {
    indexes[i].destination = new char[20];
    indexes[i].type        = new char[20];
 }
 
 for ( i = 0; i < q; i++) 
 {
    cout << "-------------------------------" << endl;
    cout << "Nomer reisa: ";
    cin >> indexes[i].number;
    cout << "Tip reisa: ";
    cin >> indexes[i].type;
    cout << "Mesto nazhacheniya: ";
    cin >> indexes[i].destination;
    cout << "Vremya otpravleniya: ";
    cin >> indexes[i].otTime;
    cout << "Vremya pribitiya: ";
    cin >> indexes[i].prTime;
    cout << "-------------------------------" << endl;
 }
 
 ofstream ofs("filename.txt");
 
 for( i = 0; i < q; i++)
 {
    ofs << indexes[i].number      << endl;
    ofs << indexes[i].type        << endl;
    ofs << indexes[i].destination << endl;
    ofs << indexes[i].otTime      << endl;
    ofs << indexes[i].prTime      << endl;
 }
 ofs.close();
 
// здесь ввод данных для поиска и: вариант 1) поиск нужного рейса в массиве indexes, вывод результатов
                                 
 for ( i = 0; i < q; i++)
 {
    delete indexes[i].destination;
    delete indexes[i].type;        
 }    
 delete [] indexes;
 
 // вариант 2) чтение из файла структур во временную структуру, анализ нужных полей, вывод результата  
 
 system("pause");
 return 0;
 }


Добавлено через 12 минут
А лучше так:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
#include <fstream>
using namespace std;
 
struct Trip                                         
{                                                   
    int      number;                                   
    string   type;                             
    string   destination;                          
    double   otTime;                                
    double   prTime;                            
} reis; 
 
int main() 
{
 cout << "Vvedite kolichestvo reisov: ";
 int q;
 cin >> q;
 
 vector <Trip> vecTrip;
 
 int i;
 for ( i = 0; i < q; i++) 
 {
    cout << "-------------------------------" << endl;
    
    cout << "Nomer reisa: ";
    cin >> reis.number;
    cout << "Tip reisa: ";
    cin >> reis.type;
    cout << "Mesto nazhacheniya: ";
    cin >> reis.destination;
    cout << "Vremya otpravleniya: ";
    cin >> reis.otTime;
    cout << "Vremya pribitiya: ";
    cin >> reis.prTime;
    
    vecTrip.push_back(reis);
    
    cout << "-------------------------------" << endl;
 }
 
 ofstream ofs("filename.txt");
 
 for( i = 0; i < q; i++)
 {
    ofs << vecTrip[i].number      << endl;
    ofs << vecTrip[i].type        << endl;
    ofs << vecTrip[i].destination << endl;
    ofs << vecTrip[i].otTime      << endl;
    ofs << vecTrip[i].prTime      << endl;
 }
 ofs.close();
 
// здесь ввод данных для поиска и: вариант 1) поиск нужного рейса в векторе, вывод результатов
//                                 вариант 2) чтение из файла структур во временную структуру reis, анализ нужных полей, вывод результата  
 
 system("pause");
 return 0;
 }
1
06.03.2013, 14:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2013, 14:01
Привет! Вот еще темы с ответами:

Вывод данных в текстовый файл - C++
В программе получил несколько динамических массивов. Необоходимо вывести их в текстовый файл (мне потом в экселе графики по этим данным...

Вывод матрицы в текстовый файл - C++
День добрый, ребята. Пытаюсь сделать прототип матрицы смежности графа, но имею недостаточно знаний. Нашел здесь заготовку, которую следует...

Переделать программу, чтобы пузырьковая сортировка начиналась с первого элемента - C++
привет, мне надо переделать программку чтобы пузырьковая сортировка начиналась с первого элемента. #include &lt;iostream&gt; #include...

Как лучше переделать программу чтобы отсутствовали глобальных переменных - C++
есть программа, как лучше переделать программу что бы отсутствовали глобальных переменных, т.е. чтобы все передавалось через параметры....


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

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

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