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

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

Войти
Регистрация
Восстановить пароль
 
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
#1

C++ файлы ifstream/ofstream запись класса - C++

25.07.2013, 17:45. Просмотров 1054. Ответов 3
Метки нет (Все метки)

Доброе время суток дамы и господа необходимо помочь ибо что-то голова не варит ))
класс
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
#pragma once
#include <iostream>
using namespace std;
class date
{
    int day;
    int mounth;
    int year;
public:
    date();
    date(int d,int m,int y);
    date(const date&a);
    
    void set_day(int d);
    void set_mounth(int m);
    void set_year(int y);
 
    int get_day()const;
    int get_mounth()const;
    int get_year()const;
 
    void show();
    friend ostream& operator<<(ostream& os,date& a);
    friend ofstream& operator<<(ofstream&fs,date&a);
    friend ifstream& operator>>(ifstream&fs,date&a);
};
реализация
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
#include <iostream>
#include "date.h"
using namespace std;
    date::date()
    {
        day=0;
        mounth=0;
        year=0;
    }
    date::date(int d,int m,int y)
    {
        day=d;
        mounth=m;
        year=y;
    }
    date::date(const date&a)
    {
        day=a.get_day();
        mounth=a.get_mounth();
        year=a.get_year();
    }
    
    void date::set_day(int d)
    {
        day=d;
    }
    void date::set_mounth(int m)
    {
        mounth=m;
    }
    void date::set_year(int y)
    {
        year=y;
    }
 
    int date::get_day()const
    {
        return day;
    }
    int date::get_mounth()const
    {
        return mounth;
    }
    int date::get_year()const
    {
        return year;
    }
    void date::show()
    {
        cout<<day<<","<<mounth<<","<<year<<endl;
    }
запись/считывание/вывод
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
ostream& operator<<(ostream& os, date& a)
{
    os<<a.day<<",";
    os<<a.mounth<<",";
    os<<a.year<<endl;
    return os;
}
ifstream& operator>>(ifstream&fs,date&a)
{
    int sz=0;
 
    fs.read((char*)&sz, sizeof(int));
    fs.read((char*)&a.day,sz);
 
    fs.read((char*)&sz, sizeof(int));
    fs.read((char*)&a.mounth,sz);
 
    fs.read((char*)&sz, sizeof(int));
    fs.read((char*)&a.year,sz);
    return fs;
}
ofstream& operator<<(ofstream&fs,date&a)
{
    int sz=sizeof(int);
    fs.write((char*)&sz,sizeof(sz));
    fs.write((char*)&a.day,sz);
 
    fs.write((char*)&sz,sizeof(sz));
    fs.write((char*)&a.mounth,sz);
 
    fs.write((char*)&sz,sizeof(sz));
    fs.write((char*)&a.year,sz);
    return fs;
}
майн
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void main()
{   
    date z(6,10,1991);
    date m(26,10,1986);
    ofstream f("date.bin");
    f<<z;
    f<<m;
    f.close();
 
    date z1;
    date z2;
    ifstream f1("date.bin");
    
        f1>>z1;
        f1>>z2;
        cout<<z1<<endl;
        cout<<z2<<endl;
    
    f1.close();
вроди все основное кинул )) Подскажите плиз почему 1-вое считывает норм. а все последующее нет((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2013, 17:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C++ файлы ifstream/ofstream запись класса (C++):

C++ файлы ifstream/ofstream - C++
Доброе время суток нужна небольшая помощь с записью/считыванием из файла вообщем при считывание из файла eof() не определяет конца файла и...

ifstream, ofstream и объекты класса - C++
Доброго времени суток, помогите пожалуйста разобраться. Есть некий класс: class Tr { public: Tr(){} ~Tr(){} private:

Сокращенная запись ifstream и ofstream - C++
#include &lt;fstream&gt; using namespace std; int main() { fstream I(&quot;input.txt&quot;), O(&quot;output.txt&quot;, 2); что означает второй...

Чтением и запись в файл, ifstream/ofstream - C++
Здравствуйте, уважаемые участники форума, есть такое задание, возвести в квадрат каждый элемент массива, стоящий на четном месте и в куб...

ifstream ofstream - C++
как работают данные файловые операции, объясните пожалуйста куда происходит запись ена жёстком диске

Перегрузка ifstream и ofstream? - C++
Есть класс //test.h cass test { private: int i; string st; public:

3
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.07.2013, 19:30 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void main()
{   
    date z(6,10,1991);
    date m(26,10,1986);
    ofstream f("date.bin", ios::binary);
    f<<z;
    f<<m;
    f.close();
 
    date z1;
    date z2;
    ifstream f1("date.bin", ios::binary);
    
        f1>>z1;
        f1>>z2;
        cout<<z1<<endl;
        cout<<z2<<endl;
    
    f1.close();
}
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ifstream& operator>>(ifstream &fs,date &a)
{
    int sz=sizeof(int);
    fs.read((char*)&a.day,sz);
    fs.read((char*)&a.mounth,sz);
    fs.read((char*)&a.year,sz);
    return fs;
}
 
ofstream& operator<<(ofstream &fs,date &a)
{
    int sz=sizeof(int);
    fs.write((char*)&a.day,sz);
    fs.write((char*)&a.mounth,sz);
    fs.write((char*)&a.year,sz);
    return fs;
}
1
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
25.07.2013, 19:54  [ТС] #3
еше раз спс
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.07.2013, 20:19 #4
C++
1
date m(26,10,1986);
Число 26 сбивает чтение (если текстовый режим). В текстовом режиме это код конца файла. Дальше чтение уже не идёт. Если заменить на другое число, то будет работать и в текстовом режиме, но так делать ненужно. Раз уж используете бинарный режим чтения/записи, то и файлы нужно открывать в таком режиме.
0
25.07.2013, 20:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2013, 20:19
Привет! Вот еще темы с ответами:

ifstream/ofstream/fstream - C++
#include &lt;fstream&gt; fstream autosave; autosave.open(&quot;...autosave.txt&quot;); char x; autosave &lt;&lt; x; cout &gt;&gt;...

Работа с кириллицей в ofstream/ifstream - C++
Как сохранять русские буквы в ofstream и выводить русские буквы в через ifstream ?

class/string/ifstream/ofstream - C++
Доброе время суток всем!! Люди я уперся в стену и буду признателен за помощь date.h #pragma once #include &lt;iostream&gt; #include...

Неправильно выполнение ifstream, ofstream - C++
Не происходит ни открытие файла, ни выполнение операций ввода-вывода ...


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

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

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