Задаватель вопросов
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 258
Записей в блоге: 13
1

Ошибка "отсутствует оператор "<<" соответствующий этим операндам"

17.11.2021, 14:42. Показов 1192. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Ниже мой код где пользователь заполняет название продукта, калорийность, витамины и цену за кг, все ок , но не могу понять как записать в файл то что было записано с экрана.

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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
struct food 
{
    string name;
    int kalor;
    int VitA;
    int VitB;
    int VitC;
    int VitE;
    int VitP;
    int VitPP;
    double price;
 
};
 
void output(food f1)
{
 
    cout << "\nНазвание: " << f1.name << endl;
    cout << "Калории: " << f1.kalor << endl;
    cout << "Витамин А: " << f1.VitA << endl;
    cout << "Витамин В: " << f1.VitB << endl;
    cout << "Витамин С: " << f1.VitC << endl;
    cout << "Витамин Е: " << f1.VitE << endl;
    cout << "Витамин Р: " << f1.VitP << endl;
    cout << "Витамин РР: " << f1.VitPP << endl;
 
}
int main()
{
 
    ofstream PR11("PR11.doc");
    PR11.open("PR11.doc");
 
    setlocale(LC_ALL, "rus");
 
    food eda;
    cout << "Укажите название продукта: ";
    getline(cin, eda.name);
 
    cout << "Укажите калории: ";
    cin >> eda.kalor;
 
    cout << "Введите витамины А: ";
    cin >> eda.VitA;
 
    cout << "Введите витамины В: ";
    cin >> eda.VitB;
 
    cout << "Введите витамины С: ";
    cin >> eda.VitC;
 
    cout << "Введите витамины Е: ";
    cin >> eda.VitE;
 
    cout << "Введите витамины Р: ";
    cin >> eda.VitP;
 
    cout << "Введите витамины РР: ";
    cin >> eda.VitPP;
 
    cout << "Укажите цену товара: ";
    cin >> eda.price;
 
    output(eda);
 
    PR11 << output(eda);
    system("pause");
    return 0;
 
}
Помогите пожалуйста

Добавлено через 1 минуту
На 71ю строку указывает ошибку, что отсутствует оператор "<<" соответствующий этим операндам...
,_ ,
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2021, 14:42
Ответы с готовыми решениями:

Ошибка: Отсутствует оператор >> соответствующий этим операндам
Здравствуйте, понятия не имею в чем проблема 11 строчка #include &lt;iostream&gt; enum l_name {...

Отсутствует оператор >>, соответствующий этим операндам. В чем ошибка?
#include &quot;stdafx.h&quot; #include &quot;istream&quot; #include &quot;iostream&quot; using namespace std; int main() {...

Ошибка: отсутствует оператор >>,соответствующий этим операндам типы операндов: std::ostream>>const double
Помогите или объясните в чем моя ошибка?? Вот программный код! заголовочный файл #ifndef...

Отсутствует оператор [] соответствующий этим операндам
Всем привет есть программа в которой не работает сортировка т.к. скорее всего накосячил с...

отсутствует оператор << соответствующий этим операндам
есть код auto start = high_resolution_clock::now(); for (int i = 0; i &lt; length; i++) {...

13
612 / 373 / 69
Регистрация: 21.09.2008
Сообщений: 1,277
17.11.2021, 17:25 2
Нерационально заполненную структуру сохранять как текстовый файл через перенаправленный вывод. Логичнее писать её в двоичном виде, во внутреннем представлении, как она заполнена в памяти ПК. Записал, сосчитал без всяких преобразований.
Режим доступа к файлу не настроен. В общем, Вам сюда: Работа с файлами в С++.
0
фрилансер
5491 / 5088 / 1045
Регистрация: 11.10.2019
Сообщений: 13,307
17.11.2021, 17:45 3
Цитата Сообщение от sharpey Посмотреть сообщение
Логичнее писать её в двоичном виде, во внутреннем представлении, как она заполнена в памяти ПК
а потом бегать с горящим задом из-за радостей совместимости версий

Не по теме:

самое правильное - использовать json, но за неимением под рукой подойдёт любой текстовый формат



Добавлено через 2 минуты
Parlepapindipon, а почему в раздел Си?

сделай в структуре метод сериализации, будет удобно

Добавлено через 1 минуту
Цитата Сообщение от Parlepapindipon Посмотреть сообщение
PR11 << output(eda);
функция output возвращает void, поэтому вывести её результат не получится )
0
590 / 413 / 135
Регистрация: 02.10.2008
Сообщений: 1,745
Записей в блоге: 1
17.11.2021, 17:55 4
Цитата Сообщение от Алексей1153 Посмотреть сообщение
а потом бегать с горящим задом из-за радостей совместимости версий
Просто надо использовать не int, а типы с указанием размерности, например, uint32_t, ну и естественно #pragma pack .

А вот появление внутри структуры вместо базовых типов целого класса string - тут да - только текстовая сериализация. Ну а что выбрать XML, JSON или своё - дело десятое - для лабы хватит даже обычного CSV
0
фрилансер
5491 / 5088 / 1045
Регистрация: 11.10.2019
Сообщений: 13,307
17.11.2021, 17:57 5
Цитата Сообщение от drfaust Посмотреть сообщение
например, uint32_t, ну и естественно #pragma pack .
это не спасёт от геморроя. Спасёт только любой текстовый формат
0
590 / 413 / 135
Регистрация: 02.10.2008
Сообщений: 1,745
Записей в блоге: 1
17.11.2021, 18:06 6
Цитата Сообщение от Алексей1153 Посмотреть сообщение
это не спасёт от геморроя.
В чём именно не спасёт? Если в новой версии появляется новое обязательное поле uint32_t Сarbohydrate;, а готовую базу товаров в 10Мб терять неохота, то и текстовый формат обеспечит "веселье".

З.Ы. Можно пример, на базе проги ТСа?
0
фрилансер
5491 / 5088 / 1045
Регистрация: 11.10.2019
Сообщений: 13,307
17.11.2021, 20:22 7
drfaust, с json всё очень просто - если поля там нет, оно будет взято со значением по умолчанию
0
Задаватель вопросов
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 258
Записей в блоге: 13
18.11.2021, 14:17  [ТС] 8
Ребят, и как мне быть ? ,_ ,
0
фрилансер
5491 / 5088 / 1045
Регистрация: 11.10.2019
Сообщений: 13,307
18.11.2021, 14:38 9
Лучший ответ Сообщение было отмечено zss как решение

Решение

Parlepapindipon,
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
#include <iostream>
#include <fstream>
#include <string>
 
using std::cin;
using std::cout;
using std::endl;
 
struct food 
{
    std::string name;
    int kalor{};
    int VitA{};
    int VitB{};
    int VitC{};
    int VitE{};
    int VitP{};
    int VitPP{};
    double price{};
 
    void input()
    {
        *this={};
        
        cout << "Укажите название продукта: "; getline(cin, name);
        cout << "Укажите калории: "          ; cin >> kalor;
        cout << "Введите витамины А: "       ; cin >> VitA;
        cout << "Введите витамины В: "       ; cin >> VitB;
        cout << "Введите витамины С: "       ; cin >> VitC;
        cout << "Введите витамины Е: "       ; cin >> VitE;
        cout << "Введите витамины Р: "       ; cin >> VitP;
        cout << "Введите витамины РР: "      ; cin >> VitPP;
        cout << "Укажите цену товара: "      ; cin >> price;
    }
    
    void output()const
    {
        cout << "Название: " << name << endl;
        cout << "Калории: "    << kalor << endl;
        cout << "Витамин А: "  << VitA << endl;
        cout << "Витамин В: "  << VitB << endl;
        cout << "Витамин С: "  << VitC << endl;
        cout << "Витамин Е: "  << VitE << endl;
        cout << "Витамин Р: "  << VitP << endl;
        cout << "Витамин РР: " << VitPP << endl;
    }
    
    void toFile()const
    {
        std::ofstream cout("PR11.doc");
        if(cout.is_open())
        {
            cout << name << endl;
            cout << kalor << endl;
            cout << VitA << endl;
            cout << VitB << endl;
            cout << VitC << endl;
            cout << VitE << endl;
            cout << VitP << endl;
            cout << VitPP << endl;
        }
    }
};
 
int main()
{
    food eda;
    
    eda.input() ;cout <<'\n';
    eda.output();cout <<'\n';
    eda.toFile();cout <<'\n';
    
    system("pause");
    return 0;
 
}
0
Задаватель вопросов
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 258
Записей в блоге: 13
18.11.2021, 16:23  [ТС] 10
Алексей1153, смотрите, я без вас нашел решение... Но у меня не создается файл, в чем беда?
Код:
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 <fstream>
#include <string>
using namespace std;
 
struct food 
{
    string name;
    int kalor;
    int VitA;
    int VitB;
    int VitC;
    int VitE;
    int VitP;
    int VitPP;
    double price;
 
};
 
food set()
{
    food eda;
    cout << "Укажите название продукта: ";
    getline(cin, eda.name);
    cout << "Укажите калории: ";
    cin >> eda.kalor;
    cout << "Введите витамины А: ";
    cin >> eda.VitA;
cout << "Введите витамины В: ";
    cin >> eda.VitB;
    cout << "Введите витамины С: ";
    cin >> eda.VitC;
    cout << "Введите витамины Е: ";
    cin >> eda.VitE;
    cout << "Введите витамины Р: ";
    cin >> eda.VitP;
    cout << "Введите витамины РР: ";
    cin >> eda.VitPP;
    cout << "Укажите цену товара: ";
    cin >> eda.price;
    cin.ignore();
    return eda;
}
void output(food f1)
{
 
    cout << "\nНазвание: " << f1.name << endl;
    cout << "Калории: " << f1.kalor << endl;
    cout << "Витамин А: " << f1.VitA << endl;
    cout << "Витамин В: " << f1.VitB << endl;
    cout << "Витамин С: " << f1.VitC << endl;
    cout << "Витамин Е: " << f1.VitE << endl;
    cout << "Витамин Р: " << f1.VitP << endl;
    cout << "Витамин РР: " << f1.VitPP << endl;
    cout << "Цена: " << f1.price << endl;
 
}
 
void outf(food f1)
{
 
    ofstream f;
    f.open("Отчет продуктов.txt");
    f << "\nНазвание: " << f1.name << endl;
    f << "Калории: " << f1.kalor << endl;
    f << "Витамин А: " << f1.VitA << endl;
    f << "Витамин В: " << f1.VitB << endl;
    f << "Витамин С: " << f1.VitC << endl;
    f << "Витамин Е: " << f1.VitE << endl;
    f << "Витамин Р: " << f1.VitP << endl;
    f << "Витамин РР: " << f1.VitPP << endl;
    f << "Цена: " << f1.price << endl;
    f.close();
}
int main()
{
 
    
 
    setlocale(LC_ALL, "rus");
    food eda[2];
    for (int i = 0; i < 2; i++)
        eda[i] = set();
    for (int i = 0; i < 2; i++) {
        output(eda[i]);
 
        outf(eda[i]);
    }
    system("pause");
    return 0;
 
}
0
Модератор
Эксперт С++
13491 / 10747 / 6405
Регистрация: 18.12.2011
Сообщений: 28,680
18.11.2021, 16:31 11
1. Не там смотрите. По умолчанию файл создастся в папке проекта.
2. Не нравятся русские буквы.

И почему не проверяете, открылся ли файл?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void outf(food f1)
{
 
  ofstream f("Отчет продуктов.txt");
  if(f)
  { 
    f << "\nНазвание: " << f1.name << endl;
    f << "Калории: " << f1.kalor << endl;
    f << "Витамин А: " << f1.VitA << endl;
    f << "Витамин В: " << f1.VitB << endl;
    f << "Витамин С: " << f1.VitC << endl;
    f << "Витамин Е: " << f1.VitE << endl;
    f << "Витамин Р: " << f1.VitP << endl;
    f << "Витамин РР: " << f1.VitPP << endl;
    f << "Цена: " << f1.price << endl;
    f.close();
  }else
     cout<<"файл не открылся\n";
}
0
Задаватель вопросов
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 258
Записей в блоге: 13
18.11.2021, 16:50  [ТС] 12
zss,
Цитата Сообщение от zss Посмотреть сообщение
И почему не проверяете, открылся ли файл?
- моя не опытность...

Добавлено через 1 минуту
zss, и мне нужно что бы обязательно было записано в файл...
0
Модератор
Эксперт С++
13491 / 10747 / 6405
Регистрация: 18.12.2011
Сообщений: 28,680
18.11.2021, 16:55 13
Цитата Сообщение от Parlepapindipon Посмотреть сообщение
Но у меня не создается файл, в чем беда?
Цитата Сообщение от Parlepapindipon Посмотреть сообщение
и мне нужно что бы обязательно было записано в файл
Сами себе противоречите.
0
Задаватель вопросов
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 258
Записей в блоге: 13
18.11.2021, 17:02  [ТС] 14
Цитата Сообщение от zss Посмотреть сообщение
Сами себе противоречите.
Признаю...
Моя вина...
0
18.11.2021, 17:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2021, 17:02
Помогаю со студенческими работами здесь

Отсутствует оператор соответствующий этим операндам c++
Есть код программы по операциям с двумерными матрицами, сложение, умножение и тд...... #include...

Отсутствует оператор [] соответствующий этим операндам
Ошибка Отсутствует оператор соответствующий этим операндам как решить вот код: #include &lt;stdio.h&gt;...

Отсутствует оператор = соответствующий этим операндам
Компилятор ругается на отсутствует оператор = в 4 строке .Как убрать данную ошибку? class rok {...

C++ отсутствует оператор, соответствующий этим операндам
создал свой класс, перегрузил + и &lt;&lt;, с &lt;&lt; все хорошо, а плюсом какие-то проблемы. Не могу ничего...

Отсутствует оператор << соответствующий этим операндам
Здравствуйте ! Возникает такая ошибка: отсутствует оператор &quot;&lt;&lt;&quot;, соответствующий этим операндам ...

Итераторы. Отсутствует оператор << соответствующий этим операндам
Здравствуйте. При попытке вывести содержимое вектора, выдает ошибку &quot;отсутствует оператор &quot;&lt;&lt;&quot;,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru