С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
bboygasta
0 / 0 / 0
Регистрация: 18.10.2016
Сообщений: 30
1

Подскажите, нужно перегрузить оператор или создать метод(если создать то не понимаю как) записи в файл

01.12.2016, 00:41. Просмотров 235. Ответов 6
Метки нет (Все метки)

вот как я хотел сделать запись в файл перегрузкой
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
#pragma once
#include "iostream"
#include "conio.h"
#include "fstream"
class product
{
private:
    char* Name;
    double Kkal;
    double Belok;
    double Yglevod;
    double Gur;
public:
    product()
    {
        Kkal = Belok = Yglevod = Gur = 0;
        Name = "не введено имя";
    }
    product(double bel, double ygl, double gur, char* name)
{
    Belok= bel;
    Yglevod= ygl;
    Gur= gur;
    Kkal= (bel*4)+(ygl*4)+(gur*9);
        Name= name;
}
    friend std::ostream& operator<<(std::ostream& os,const product p1)
    {
        os<<p1.Name<<p1.Belok<<" белка, "<<p1.Gur<<" жира, "<<p1.Yglevod<<" углеводов, "<<p1.Kkal<<"ккал ";
        return os;
    }
 
    std::ofstream& fout(std::ofstream& fout, product p1)
    {
 
    }
 
 
 
};
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2016, 00:41
Ответы с готовыми решениями:

Создать копирующий конструктор для класса матрицы и перегрузить оператор <<
Пытаюсь создать копирующий конструктор для класса матрицы и перегрузить...

Как создать файл для записи?
Как правильно создать файл для записи,чтобы внести необходимое кол-во имен? ...

Подскажите, как создать или вытащить из поля ID? Только дошло, что изменение записи без ID невозможно
Думал сделать успешное изменение поля в базе данных, через php и вдруг понял,...

Создать класс с двумя полями и перегрузить оператор сложения
Создать класс с двумя переменными x y int. И перегрузить оператор +

Нужно создать класс или метод в который будет служить для загрузки и инициализации переменных
Нужно создать класс или метод который будет служить для загрузки и...

6
John999
224 / 107 / 79
Регистрация: 17.10.2016
Сообщений: 312
01.12.2016, 01:04 2
bboygasta, вы уже сделали , этого достаточно
C++
1
2
3
4
5
 std::ostream& operator<<(std::ostream& os, const product& p1)
{
    os << p1.Name << p1.Belok << " белка, " << p1.Gur << " жира, " << p1.Yglevod << " углеводов, " << p1.Kkal << "ккал ";
    return os;
}
C++
1
2
3
std::ofstream file("outfile.txt");
    product pr;
    file << pr;
0
ящюр
97 / 97 / 60
Регистрация: 15.03.2013
Сообщений: 528
Записей в блоге: 1
01.12.2016, 01:05 3
Удалить.
0
John999
224 / 107 / 79
Регистрация: 17.10.2016
Сообщений: 312
01.12.2016, 01:05 4
Цитата Сообщение от bboygasta Посмотреть сообщение
Name = "не введено имя";
ошибка, string используйте
или функцию strcpy
0
nd2
2838 / 2405 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
01.12.2016, 02:29 5
Цитата Сообщение от John999 Посмотреть сообщение
вы уже сделали , этого достаточно
Зачем ему в файл записывать " белка, " и прочее? Чтобы потом мучиться при чтении из файла?

Добавлено через 1 минуту
Цитата Сообщение от John999 Посмотреть сообщение
ошибка
И в чём? Указателю присваивается адрес строкового литерала.
0
John999
224 / 107 / 79
Регистрация: 17.10.2016
Сообщений: 312
01.12.2016, 04:00 6
nd2, просто скопировал его перегрузку, без учета подробностей


Цитата Сообщение от nd2 Посмотреть сообщение
И в чём? Указателю присваивается адрес строкового литерала.
Присвоить константу в конструкторе переменной char *Name? Это нормально?
Для меня не нормально.
Пусть это моё ИМХО. ок, это не ошибка. но потенциальный её источник.
Сейчас мой напарник сядет дописывать такой класс.
Видя поле переменную char*
и не глядя на реализации методов влепит впопыхах деструктор
C++
1
2
3
4
~ Destr()
{
  delete[]  Name;
}
или метод какой-нибудь зафигачит
где
C++
1
strcpy(Name,N);
а потом отправит класс пользователю.
Цитата Сообщение от nd2 Посмотреть сообщение
Указателю присваивается адрес строкового литерала.
Пусть присваивается в другом месте, а я буду выделять память и копировать.
0
nd2
2838 / 2405 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
01.12.2016, 04:15 7
Цитата Сообщение от John999 Посмотреть сообщение
ок, это не ошибка. но потенциальный её источник.
С этим согласен. Как сделать метод сохранения в файл
1
01.12.2016, 04:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2016, 04:15

Обновить если запись есть; Создать если записи нет
Ребят подскажите как оптимизировать программу, ибо занимает очень много времени...

Нужно создать грид, чтобы в одной записи было несколько строк (как в 1С).
Как создать грид чтобы в одной записи было несколько строк. Это не MSHFLexgrid...

Подскажите что делать. Знаю что надо перегрузить оператор но никак не могу понять как это сделать
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...


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

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

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