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

Создать динамический список, организовать запись данных в текстовый файл и вывод их из файла - C++

Восстановить пароль Регистрация
 
PsychodeliNoise
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 12
14.04.2014, 20:42     Создать динамический список, организовать запись данных в текстовый файл и вывод их из файла #1
В общем, суть такова: есть 2 отдельные программы — одна создаёт динамический список и выводит его на экран; другая — записывает вводимые данные в текстовый файл и выводит их оттуда же. Суть в том, что мне нужно их объединить: и чтобы в файл записывала/выводила, и чтобы список динамический был.

Вот запись в файл:
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
struct DATE
{int d, mnth, yr;};
 
struct NEWSP
{char nm[20]; int edtn, prc; DATE da;};
const char filename[]="nwsp.txt";
fstream nwsp;
 
void WriteToFile ( int num )
    {
        NEWSP h;
        system ("cls");
        nwsp.open ( filename, ios::app );
        cout << "\n Enter data:\n ";
        for ( int i = 0; i < num; i++ )
            {
                cout << "\n Name -> "; cin >> h.nm;
                cout << "\n Edition -> "; cin >> h.edtn;
                cout << "\n Price -> "; cin >> h.prc;
                cout << "\n Date (day) -> "; cin >> h.da.d;
                cout << "\n Date (month) -> "; cin >> h.da.mnth;
                cout << "\n Date (year) -> "; cin >> h.da.yr;
                nwsp << " " << h.nm << " " << h.edtn << " " << h.prc << " " << 
                h.da.d << " " << h.da.mnth << " " << h.da.yr << "\n";
            }
        nwsp.close();
    }
 
void PrintFile()
    {
        NEWSP h;
        system ("cls");
        nwsp.open ( filename, ios::in );
        cout << "\n Name\tEdition\tPrice\tDate\n";
        while (!nwsp.eof())
            {
                nwsp >> h.nm >> h.edtn >> h.prc >> h.da.d >> h.da.mnth >> h.da.yr;          
                if ( nwsp.peek ()!=EOF )
                cout << " " << h.nm << "\t" << h.edtn << "\t" << h.prc << "\t" << 
                h.da.d << "." << h.da.mnth << "." << h.da.yr << "\n";
            }
        nwsp.close();
 
        _getch();
 
    }
Вот создание динамического списка:
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
struct DATE
{int day, month, year;};
 
struct ELMNT
{ char name[20]; int edition, price; ELMNT *next; DATE d; };
 
ELMNT *first, *last, *list;
 
void WriteToFile()
{
    system ("cls");
 
    int n = 1;
 
    first = new ELMNT;
 
    cout << "\n Enter name: ";
    char str[20];
    cin >> str;
    strcpy_s ( first -> name, str );
    cout << "\n Enter edition: ";
    int k1;
    cin >> k1;
    first -> edition = k1;
    cout << "\n Enter price: ";
    int k2;
    cin >> k2;
    first -> price = k2;
    cout << "\n Enter date (day): ";
    int k3;
    cin >> k3;
    first -> d.day = k3;
    cout << "\n Enter date (month): ";
    int k4;
    cin >> k4;
    first -> d.month = k4;
    cout << "\n Enter date (year): ";
    int k5;
    cin >> k5;
    first -> d.year = k5;
 
    first -> next = NULL;
    last = first;
    char flag[10];
    int k = 1;
 
    while ( k )
        {
            system ("cls");
 
            cout << "\n Continue? Yes/No\t";
            cin >> flag; if ( ( strcmp ( flag, "Yes" ) == 0 ) || ( strcmp ( flag, "yes" ) == 0 ) )
                {
                    n++;
                    list = new ELMNT;
 
                    cout << "\n Enter name: ";
                    char str[20];
                    cin >> str;
                    strcpy_s ( list -> name, str );
                    cout << "\n Enter edition: ";
                    int k1;
                    cin >> k1;
                    list -> edition = k1;
                    cout << "\n Enter price: ";
                    int k2;
                    cin >> k2;
                    list -> price = k2;
                    cout << "\n Enter date (day): ";
                    int k3;
                    cin >> k3;
                    list -> d.day = k3;
                    cout << "\n Enter date (month): ";
                    int k4;
                    cin >> k4;
                    list -> d.month = k4;
                    cout << "\n Enter date (year): ";
                    int k5;
                    cin >> k5;
                    list -> d.year = k5;
                        
                    list -> next = NULL;
                    last -> next = list;    
                    last = list;
                }
            else if  ( ( strcmp ( flag, "No" ) == 0 ) || ( strcmp ( flag, "no" ) == 0 ) ) k = 0;
            else { system ("cls"); cout << "\n ERROR!"; k = 0;  _getch(); }
        }
}
 
void PrintFile()
{
    system ("cls");
        
    list = first;
 
    while ( list )
    {   
        cout << "\n "  << list -> name << " " << list -> edition << " " << list -> price << " " << ( char ) 0xB3 << list -> d.day << "." << list -> d.month << "." << list -> d.year;
        
        list = list -> next;
    }
 
    _getch();
}
В принципе, данные в файл новая, объединённая прога записывает, список работает, только вот вывод из файла категорически работать отказывается. С циклами у меня беда большая, поясните, как заставить это работать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2014, 20:42     Создать динамический список, организовать запись данных в текстовый файл и вывод их из файла
Посмотрите здесь:

C++ Запись данных в текстовый файл
Запись данных в текстовый файл C++
C++ как организовать Буферизированный ввод вывод стурктуры в текстовый файл?
C++ Ввод структуры в текстовый файл столбиком и вывод данных из файла в структуру
C++ Запись данных в текстовый файл
C++ Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод)
Запись данных в текстовый файл C++
C++ Запись структуры данных в файл. Динамический список

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

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

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