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

Динамическая структура данных (Стек) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму элементов http://www.cyberforum.ru/cpp-beginners/thread1483559.html
Здравствуйте уважаемые киберфорумцы, нужна Ваша помощь, времени к сожалению нету самому разбираться, так как навалилось все большим комом и в один раз. Так вот, помогите решить задания,...
C++ Вычислить значение двойной суммы Здравствуйте уважаемые киберфорумцы, нужна Ваша помощь, времени к сожалению нету самому разбираться, так как навалилось все большим комом и в один раз. Так вот, помогите решить задания,... http://www.cyberforum.ru/cpp-beginners/thread1483557.html
Переполнение массива C++
Товарищи, имею такой вопрос- есть у меня часть кода, которая отвечает за загрузку из интерне xml файла и созраняющая его в массив. Все работает, но только во время первого цикла вызова функции...
Имитация действий пользователя C++
Не знаю в какую ветку написать. Есть программа SAP со списком клиентских заказов в магазине в виде таблицы. Если щелкнуть по заказу (строка), отобразиться более подробная информация со вкладкой о...
C++ Вывести столбцы матрицы в которых элементы образуют возрастающую последовательность http://www.cyberforum.ru/cpp-beginners/thread1483526.html
Здравствуйте, помогите пожалуйста с задачей. У меня проблема с проверкой последовательности. Дана матрица размером nхm. Вывести на экран столбцы (один или не-сколько) в которых элементы образуют...
C++ Переменным m и n присвоить первые два значения из файла Добрый день! Помогите, пожалуйста. Мне нужно из файла первое значение присвоить переменной m, второе значение - присвоить переменной n. Вот мой код. Также прилагаю файл f.txt, с которого... подробнее

Показать сообщение отдельно
PNTSPro
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 7

Динамическая структура данных (Стек) - C++

21.06.2015, 11:06. Просмотров 442. Ответов 4
Метки (Все метки)

Подскажите в чем ошибка, пожалуйста. Программа выдает ошибку ("Прекращена работа программы.."), когда выбираю "y" (добавление элементов структуры из бинарного файла).
Часть кода:

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
#include <fstream>
#include <iostream>
#include <cstring>
#include <cstdlib>
#define database "db.bin"
 
using namespace std;
 
ifstream fin;
ofstream fout;
 
struct work{
    char adres[25];  //адресс
    char type[25];  //тип работ
    int price;    //стоимость работ
    int time;      //время работы
    char name[80];  //фамилия ответсвенного
}data;
 
struct STACK {
    work info;
    STACK *next;
};
 
void Add(STACK **pstack)  //Ввод элемента в вершину стека
{
    char file[2];
    do{
    cout << "Добавление элементов из файла?(y/n): ";
    cin >> file;
    } while(strcmp(file,"y") && strcmp(file,"n"));
    if(!strcmp(file,"n"))
    {
        STACK *tmp = new STACK;
        cout << "\nАдрес: ";
        cin >> tmp->info.adres;
        cout << "\nТип работ: ";
        cin >> tmp->info.type;
        cout << "\nСтоимость работы: ";
        cin >> tmp->info.price;
        cout << "\nВремя работы: ";
        cin >> tmp->info.time;
        cout << "\nфамилия ответсвенного: ";
        cin >> tmp->info.name;
        tmp->next=*pstack;
        *pstack=tmp;
    } else {
        fin.open(database,ios::binary);
        if (fin.is_open())
        {
            char buf;
            int i=0;
            int count;
            while (!fin.eof())
            {
                fin.read(&buf,1);
                if (buf=='\n') i++;
            }
            fin.clear();
            fin.seekg(0, fin.beg);
            count = i / 5;
            cout << "Добавленно элементов: "<< count <<"\n";
            for(i = 0; i < count; i++)
            {
                STACK *tmp= new STACK;
                fin >> tmp->info.adres;
                fin >> tmp->info.type;
                fin >> tmp->info.price;
                fin >> tmp->info.time;
                fin >> tmp->info.name;
                tmp->next=NULL;
                (*pstack)->next=tmp;
                *pstack=tmp;
            }
        fin.close();
        }
        else
        {
            cout << "Ошибка открытия файла.";
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru