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

Что за ошибка?? (Работа с бинарными файлами) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как узнать количество записей структуры в файле? http://www.cyberforum.ru/cpp-beginners/thread117398.html
Помогите пожалуйста с вопросом: Как узнать количество записей структуры в файле?Желательно функцией,чтобы возвращала количество записей
C++ односвязные списки Доброго времени суток, товарищи! помогите кто чем может. Нужно было написать класс для работы со связными списками. Все написала, все работает. Одно но! все работает через "меню". и ввод элемента... http://www.cyberforum.ru/cpp-beginners/thread117393.html
C++ помогите решить
Написать и протестировать программу STREND (str 1,str 2) которая возвращает 1,если строка str 1 расположена в конце строки str 2 ,и 0-в противном случае..
C++ Eclipse + MinGW - не компилируют
Здравствуйте. Пытаюсь тут с NetBeans + MinGW переползти на Eclipse + MinGW. При попытке скомпилить любую программу выдаёт: /mingw/lib/libmingw32.a(main.o):main.c:(.text+0xd2): undefined...
C++ Операторы for , do while http://www.cyberforum.ru/cpp-beginners/thread117336.html
Помогите, пожалуйста сделать 2 задачки: 1.Напишите программу, которая выводит на экран квадрат Пифагора - таблицу умножения. 1 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7... 2 3 4 5 6 7
C++ Массив. Макс и мин элемент.Шаблоны и функции. Само задание вот: Найти max(a2,a4,...a(2k)+min(a1,a3,...a(2k+1). Короче, вроде бы найти макс и мин эл-т. Нужно сделать через шаблоны и функции. Помогите исправить: #include<iostream.h>... подробнее

Показать сообщение отдельно
I_like_C++
29 / 29 / 4
Регистрация: 15.03.2010
Сообщений: 146
Завершенные тесты: 1

Что за ошибка?? (Работа с бинарными файлами) - C++

15.04.2010, 22:45. Просмотров 644. Ответов 7
Метки (Все метки)

скажите, что за "левая" ошибка вылазит после оканчания программы???
вот код
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <ctime>
using namespace std;
struct pokupatel
{
    string fio;
    unsigned int nomer;
    double schet;
};
void createfile(char file1[])//создание файла с именами, фамилиями и случайными номерами кридитных карточек и счетами
{
    string len;
    ofstream f1;                            
    f1.open(file1);                 
    if (f1.is_open()) 
    {
        for(int i=0; i<15; i++)
        {
            switch(i)
            {
            case 0: len="Petrov Pavel Pavlovich";break;
            case 1: len="Eremin Ivan Ivanovich";break;
            case 2: len="Ivanov Egor Vasilich";break;
            case 3: len="Malikov Afanasiy Alanovich";break;
            case 4: len="Mitin Valeriy Timurovich";break;
            case 5: len="Baldwin William Egorovich";break;
            case 6: len="Cecil Robert Eduardovich";break;
            case 7: len="Dennis Ralph Antonovich";break;
            case 8: len="Godfrey Richard Petrovich";break;
            case 9: len="Johnes John Mihaylovich";break;
            case 10: len="Bond James Sergeevich";break;
            case 11: len="Henry Peter Dmitrievich";break;
            case 12:len="Owen Nikole Rinatovich";break;
            case 13: len="Reynolds Amanda Petrovna";break;
            case 14: len="Fox Megan Zaharovna";
            }
            f1<<len<<endl;
            f1<<rand()%100000+99999<<endl;
            if (i==14)
                f1<<rand()%10000+9999;
            else 
                f1<<rand()%10000+9999<<endl;
        }
    }
    f1.close();
}
vector<pokupatel> createvec1(char file1[])//функция для формирования вектора из элементов структурного типа из файла
{
    vector<pokupatel> V1;
    ifstream f2(file1);
    if (f2)
    {
        while (!f2.eof())
            {
                pokupatel temp;
                string str;
                f2 >> str;
                temp.fio=str;
                temp.fio+=" ";
                f2 >> str;
                temp.fio+=str;
                temp.fio+=" ";
                f2 >> str;
                temp.fio+=str;
                f2 >> temp.nomer;
                f2 >> temp.schet;
                V1.push_back(temp);
            }
    }
   f2.close();
   return V1;
}
vector<pokupatel> read(int n)//создание структурированного вектора с клавиатуры
{
    vector<pokupatel> f1;
    for(int i=0;i<n;i++)
    {
        pokupatel temp;
        string str, x;
        cout<<"Введите фамилию покупателя: ";
        cin>>str;
        temp.fio+=str;
        temp.fio+=" ";
        cout<<"Введите имя покупателя: ";
        cin>>str;
        temp.fio+=str;
        temp.fio+=" ";
        cout<<"Введите отчество покупателя: ";
        cin>>str;
        temp.fio+=str;
        /*
        cout<<"Введите номер кредитной карточки: ";
        cin>>temp.nomer;
        cout<<"Введите счет покупателя(в рублях): ";
        cin>>temp.schet;
        */
        temp.nomer=rand()%1001+1000;
        temp.schet=rand()%1001+1000;
        f1.push_back(temp);
    }
    return f1; 
}
void display(const vector<pokupatel> &v1)//вывод вектора структyрного типа на экран
{
    cout << "\n=================================================\n";
    int n=v1.size();
    for (int i=0; i< n; i++)
        cout<<i+1<<".fio: "<<v1[i].fio<<"\n   nomer: "<< v1[i].nomer<<"\n   schet: "<<v1[i].schet<<" rub"<<endl;  
    cout << "Общее количество: " << n << endl;
}
void infile(char file2[], const vector<pokupatel> &v1)
{
    ofstream f3(file2, std::ios::binary);//открываем файл для записи
    int n=v1.size();
    if(f3.is_open())
    { 
        for(int i = 0; i < n; i++) // выводим массив в файл поэлементно
        {
            f3.write((char *)&v1[i].fio, sizeof(string));
            f3.write( (char *)&v1[i].nomer, sizeof(unsigned int) );
            f3.write((char *)&v1[i].schet, sizeof(double));
        }
        f3.close();
    } 
}
void outbinfile(char file2[])// открываем файл для чтения 
{
    ifstream f4(file2, std::ios::binary);
    while(!f4.eof())
    {
        pokupatel temp;
        f4.read( (char*)&temp.fio, sizeof(temp.fio));
        f4.read((char*)&temp.nomer, sizeof(temp.nomer));
        f4.read((char*)&temp.schet, sizeof(temp.schet));
        if (f4.eof())
            break;
        cout<<temp.fio<<" - "<<temp.nomer<<" - "<<temp.schet<<"\n";
    }
    f4.close();
    cout<<endl;
}
int main()
{
    setlocale (0,"Russian");
    srand((unsigned)time(0));
    char file1[] = "c:/file.txt", file2[] = "c:/binfile1.bin", file3[] = "c:/Out.txt";
    vector<pokupatel> v1;
    int q;
    cout<<"Методы заполнения вектора структурированными данными:\n1-из файла\n2-с клавиатуры\n0-выход\nВвод: ";
    cin>>q;
    switch(q)
    {
    case 0:break;
    case 1:
        {
            createfile(file1);//создание файла с именами, фамилиями и случайными номерами кридитных карточек и счетами
            v1=createvec1(file1);//функция для формирования вектора из элементов структурного типа из файла
        }break;
    case 2:
        {
            int n;
            cout<<"Задайте количество покупателей: ";
            cin>>n;
            v1=read(n);//создание структурированного вектора с клавиатуры
        }break;
    default: cout<<"Выбран неверный метод\n";
    }
    display(v1);
    infile(file2,v1);
    outbinfile(file2);
    
system("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru