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

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

Войти
Регистрация
Восстановить пароль
 
bboygasta
0 / 0 / 0
Регистрация: 18.10.2016
Сообщений: 30
#1

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

01.12.2016, 00:41. Просмотров 199. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Подскажите, нужно перегрузить оператор или создать метод(если создать то не понимаю как) записи в файл (C++):

Как создать файл для записи? - C++
Как правильно создать файл для записи,чтобы внести необходимое кол-во имен? #include&lt;iostream&gt; #include&lt;assert.h&gt; ...

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

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

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

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

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

6
John999
223 / 106 / 49
Регистрация: 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 / 24
Регистрация: 15.03.2013
Сообщений: 523
Записей в блоге: 1
01.12.2016, 01:05 #3
Удалить.
0
John999
223 / 106 / 49
Регистрация: 17.10.2016
Сообщений: 312
01.12.2016, 01:05 #4
Цитата Сообщение от bboygasta Посмотреть сообщение
Name = "не введено имя";
ошибка, string используйте
или функцию strcpy
0
nd2
2820 / 2390 / 851
Регистрация: 29.01.2016
Сообщений: 8,004
01.12.2016, 02:29 #5
Цитата Сообщение от John999 Посмотреть сообщение
вы уже сделали , этого достаточно
Зачем ему в файл записывать " белка, " и прочее? Чтобы потом мучиться при чтении из файла?

Добавлено через 1 минуту
Цитата Сообщение от John999 Посмотреть сообщение
ошибка
И в чём? Указателю присваивается адрес строкового литерала.
0
John999
223 / 106 / 49
Регистрация: 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
2820 / 2390 / 851
Регистрация: 29.01.2016
Сообщений: 8,004
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
Привет! Вот еще темы с ответами:

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

Подскажите, как правильно настроить Toad for Oracle для работы, как создать новое соединение? Очень нужно! - Oracle
Очень боюсь напортачить с созданием нового соединения.. Как создать новое подключение в TOAD? Как сделать это правильно? ...

Как создать один файл для чтения и записи одновременно? - C++
Пробовал перезапись, но содержимое файла терялось while (file1.hasNext()) { file2.write(file.nextInt() + &quot; &quot;); ...

Как создать один файл для чтения и записи одновременно? - Java SE
пробовал переписать с одного на другой и уже по новой считывать, но терялось содержимое файла while (file1.hasNext()) { ...


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

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

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