Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
41 / 37 / 8
Регистрация: 24.07.2013
Сообщений: 219

Пример class+string+ofstream/ifstream

07.08.2013, 12:02. Показов 1762. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток всем пресутствующим ) Если кому не сложно кинте пожалуйста сюда пример содержаший клас который содержит несколько полей string и перегруженый оператор

C++
1
2
ofstream& operator<<(ofstream&fs,const Person& a)
ifstream& operator>>(ifstream&fs,Person&a)
Думаю у когонибудь есть заранее примного благодарен
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.08.2013, 12:02
Ответы с готовыми решениями:

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

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

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

8
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
07.08.2013, 12:07
getline вам в помощь.
строки разделяем каким-то разделителем.
0
41 / 37 / 8
Регистрация: 24.07.2013
Сообщений: 219
07.08.2013, 12:17  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
getline вам в помощь.
строки разделяем каким-то разделителем.
честно говоря не совсем уверен как связать это все в кучу с записью чтению в/из файла тоесть идея в том чтобы влепить туда разделители ?
Честно говоря сколько я делал все это я туда лепил количевство символов для считываяния а теперь вот разбираюсь со string и выходит что тут принцип предыдущего опыта не работает и нуна юзать разделители сомнительного происхождения ?

Добавлено через 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
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
#include <iostream>
#include "date.h"
#include <string>
#include <fstream>
using namespace std;
#pragma once
class Person
{
    string surname;
    string name;
    string patronymic;
    string address;
    string phone;
    string email;
    string ICQ;
    date birthday;
public:
    Person(){}
    Person(string aSurname, string aName, string aPatronymic,string aAddress, string aPhone, string aemail, string aICQ,int d,int m,int y)
    {
        surname=aSurname;
        name=aName;
        patronymic=aPatronymic;
        address=aAddress;
        phone=aPhone;
        email=aemail;ICQ=aICQ;
        birthday.set_day(d);
        birthday.set_mounth(m);
        birthday.set_year(y);
    }
    Person(const Person & av)
    {
        surname=av.surname;
        name=av.name;
        patronymic=av.patronymic;
        address=av.address;
        phone=av.phone;
        email=av.email;
        ICQ=av.ICQ;
        birthday.set_day(av.birthday.get_day());
        birthday.set_mounth(av.birthday.get_mounth());
        birthday.set_year(av.birthday.get_year());
    }
    ~Person(){}
 
    Person operator=(const Person&av)
    {
        surname=av.surname;
        name=av.name;
        patronymic=av.patronymic;
        address=av.address;
        phone=av.phone;
        email=av.email;
        ICQ=av.ICQ;
        birthday.set_day(av.birthday.get_day());
        birthday.set_mounth(av.birthday.get_mounth());
        birthday.set_year(av.birthday.get_year());
        return *this;
    }
    void show()
    {
        cout<<"personal Information::::::::::"<<endl;
        cout<< "Surname: "<< surname << endl;
        cout << "Name: " << name << endl;
        cout << "Patronymic: " << patronymic << endl;
 
        cout<< "Address: " << address <<endl;
        cout<< "Phone: " << phone << endl;
        cout<< "e-mail: " << email <<endl;
        cout<< "ICQ: " << ICQ << endl;
        cout<<"birthday=";
        birthday.show();
        cout<<endl;
    }
    friend ostream& operator<<(ostream& os,const Person& a);
    friend istream& operator>>(istream& is, Person& a);
    friend ofstream& operator<<(ofstream&fs,const Person&a);
    friend ifstream& operator>>(ifstream&fs,Person&a);
 
 
    void set_surname(string aSurname)
    {
        surname=aSurname;
    }
    void set_name(string aName)
    {
        name=aName;
    }
    void set_patronymic(string aPatronymic)
    {
        patronymic=aPatronymic;
    }
    void set_address(string aAddress)
    {
        address=aAddress;
    }
    void set_phone(string aPhone)
    {
        phone=aPhone;
    }
    void set_email(string aEmail)
    {
        email=aEmail;
    }
    void set_ICQ(string aICQ)
    {
        ICQ=aICQ;
    }
    void set_birhday(int d,int m,int y)
    {
        birthday.set_day(d);
        birthday.set_mounth(m);
        birthday.set_year(y);
    }
 
    string get_surname()const
    {
        return surname;
    }
    string get_name()const
    {
        return name;
    }
    string get_patronymic()const
    {
        return patronymic;
    }
    string get_address()const
    {
        return address;
    }
    string get_phone()const
    {
        return phone;
    }
    string get_email()const
    {
        return email;
    }
    string get_ICQ()const
    {
        return ICQ;
    }
    date get_birthday() const
    {
        return birthday;
    }
};
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
#pragma once
#include <iostream>
#include <fstream>
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,const date& a);
    friend istream& operator>>(istream& is, date& a);
    friend ofstream& operator<<(ofstream &fs,const 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
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
#include <iostream>
#include "date.h"
#include "Person.h"
#include <fstream>
using namespace std;
ostream& operator<<(ostream& os,const Person& a)
{
    os<<"personal Information::::::::::"<<endl;
    os<< "Surname: "<< a.surname << endl;
    os << "Name: " << a.name << endl;
    os << "Patronymic: " << a.patronymic << endl;
 
    os << "Address: " << a.address <<endl;
    os<< "Phone: " << a.phone << endl;
    os<< "e-mail: " << a.email <<endl;
    os<< "ICQ: " << a.ICQ << endl;
    os<<"birthday=";
    os<<a.birthday;
    cout<<endl;
    return os;
}
istream& operator>>(istream&is,Person&a)
{
    cout<<"enter your personal data::"<<endl; 
    cout<<"enter surname=";
    cin>>a.surname;
 
    cout<<"enter name=";
    cin>>a.name;
 
    cout<<"enter patronymic=";
    cin>>a.patronymic;
 
    cout<<"enter address=";
    cin>>a.address;
 
    cout<<"enter phone=";
    cin>>a.phone;
 
    cout<<"enter email=";
    cin>>a.email;
 
    cout<<"enter ICQ=";
    cin>>a.ICQ;
    cout<<endl;
 
    cout<<"enter data of your birthday"<<endl;
    is>>a.birthday;
 
    return is;
}
ofstream& operator<<(ofstream&fs,const Person& a)
ifstream& operator>>(ifstream&fs,Person&a)
 
 
ostream& operator<<(ostream& os,const date& a)
{
    os<<a.day<<",";
    os<<a.mounth<<",";
    os<<a.year<<endl;
    return os;
}
istream& operator>>(istream&is,date&a)
{
    int d=0;
    cout<<"enter day=";
    is>>d;
    a.day=d;
    cout<<"enter mounth=";
    is>>d;
    a.mounth=d;
    cout<<"enter year=";
    is>>d;
    a.year=d;
    return is;
}
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,const 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;
}
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
07.08.2013, 12:19
Цитата Сообщение от alex1392 Посмотреть сообщение
идея в том чтобы влепить туда разделители ?
ну надо же знать где заканчивается одна строка и начинается другая

Цитата Сообщение от alex1392 Посмотреть сообщение
Честно говоря сколько я делал все это я туда лепил количевство символов для считываяния а теперь вот разбираюсь со string и выходит что тут принцип предыдущего опыта не работает
можно и через количество символов
0
41 / 37 / 8
Регистрация: 24.07.2013
Сообщений: 219
07.08.2013, 13:07  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
ну надо же знать где заканчивается одна строка и начинается другая


можно и через количество символов
Окай буду дальши эксперементировать )

Добавлено через 44 минуты
Ребят брости ктонить пример или ссылку на нормальный пример ибо сам пишу но оно работает не коректно нашол способ сделать нормальное считывание записи string но из-за него потом возникает проблемы в дальнейшем решить проблему могу если заменить интовые переменные стрингом но этожи полный бред ) кому не сложно киньте нормальный пример
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
07.08.2013, 13:08
нет, показывай что пишешь
0
41 / 37 / 8
Регистрация: 24.07.2013
Сообщений: 219
07.08.2013, 13:17  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
нет, показывай что пишешь
сверху уже все лежит из того что написано кроме ifstream ofstream
только нуна туда еше getline впихнуть )) я со стринг токо начал разбиратьсо )
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
07.08.2013, 13:20
Цитата Сообщение от alex1392 Посмотреть сообщение
нашол способ сделать нормальное считывание записи string но из-за него потом возникает проблемы в дальнейшем решить проблему могу если заменить интовые переменные стрингом но этожи полный бред
вот это показывай

Цитата Сообщение от alex1392 Посмотреть сообщение
сверху уже все лежит
там лежит для класса date, а вопрос был по классу Person, хватит уже отмазываться
0
41 / 37 / 8
Регистрация: 24.07.2013
Сообщений: 219
07.08.2013, 13:36  [ТС]
Это начальный вариант
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
ofstream& operator<<(ofstream&fs,const Person& a)
{
    //int sz;
 
//  sz=a.surname.size();
//  fs.write((char*)&sz,sizeof(int));
    fs<<a.surname<<" ";
 
    //sz=strlen(a.name);
    //fs.write((char*)&sz,sizeof(int));
    fs<<a.name<<" ";
 
    //sz=strlen(a.patronymic);
    //fs.write((char*)&sz,sizeof(int));
    fs<<a.patronymic<<" ";
 
//  sz=strlen(a.address);
    //fs.write((char*)&sz,sizeof(int));
    fs<<a.address<<" ";
 
    //sz=strlen(a.phone);
    //fs.write((char*)&sz,sizeof(int));
    fs<<a.phone<<" ";
 
    //sz=strlen(a.email);
    //fs.write((char*)&sz,sizeof(int));
    fs<<a.email<<" ";
 
    //sz=a.ICQ.size();
    //fs.write((char*)&sz,sizeof(int));
    fs<<a.ICQ<<" ";
 
    fs<<a.birthday;
    return fs;
}
ifstream& operator>>(ifstream&fs,Person&a)
{
 
 
    //fs.read((char*)&sz, sizeof(int));
    if (fs.eof()) return fs;
    fs>>a.surname;
 
    //fs.read((char*)&sz, sizeof(int));
    fs>>a.name;
 
    //fs.read((char*)&sz, sizeof(int));
    fs>>a.patronymic;
 
    //fs.read((char*)&sz, sizeof(int));
    fs>>a.address;
 
    //fs.read((char*)&sz, sizeof(int));
    fs>>a.phone;
 
    //fs.read((char*)&sz, sizeof(int));
    fs>>a.email;
 
    //fs.read((char*)&sz, sizeof(int));
    fs>>a.ICQ;
    fs>>a.birthday;
    return fs;
}
При такой записи искажаются данные даты
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.08.2013, 13:36
Помогаю со студенческими работами здесь

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

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

Функции ifstream , ofstream. Исправить
Помогите исправить код пжлст, не работает прога( #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

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

Работа с потоками ofstream/ifstream
Добрый вечер! Помогите, пожалуйста, с задачей! Дан класс: class data { char str; //дата представлена в виде строки “mm/dd/yy” ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru