Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
1

не найден оператор, как исправить

26.06.2013, 09:45. Показов 1449. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
выдает ошибку 1>4лаба прогр инженерия.cpp(34): error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует)
как исправить, чет не пойму
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 "stdafx.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
 
using namespace std;
 
struct student 
{ char name[15];
  char sname[20];
  char group[10];
  char subject[15];
  int marks[10];
  int vsego[1];
  int poseshal[1];
};
 
void in(student *st,int n) //Функция для задания димам.структуры
{
    cout<<"Введите сведеия о студентах:"<<endl;
    //среднее кол-во предметов за семестр возьмем равным 8ж
      int kol=8;
        for(int i=0;i<n;i++)
        {
            cout<<"Студент № "<<i+1<<endl;
            cout<<"Имя: ";cin>>st[i].name;
            cout<<"Фамилия: ";cin>>st[i].sname;
            cout<<"Группа: ";cin>>st[i].group;
            for(int j=0;j<kol;j++)
            {cout<<"Предмет: ";std::cin>>st[j].subject;
                 for (int k=0; k<11; k++)
                 {cout<<"Оценки: "; cin>>st[k].marks;
                 }
            cout<<"Кол-во пар по этому предмету: ";cin>>st[j].vsego;
            cout<<"Из них посещал: ";cin>>st[j].poseshal;
            }
            system("cls");
        }
}
void of (student *st,int n) //Функция вывода динам.структуры
{
    int kol=8;
 //---------------------------------------------
        cout<<"Сведия о студентах:"<<endl;
        cout<<"------------------------------"<<endl;
        for(int i=0;i<n;i++)
        {
           cout<<"Студент № "<<i+1<<endl;
            cout<<"Имя: "<<st[i].name;
            cout<<"Фамилия: "<<st[i].sname;
            cout<<"Группа: "<<st[i].group;
            for(int j=0;j<kol;j++)
            {cout<<"Предмет: "<<st[j].subject;
                 for (int k=0; k<10; k++)
                 {cout<<"Оценки: "<<st[k].marks;}
            cout<<"Кол-во пар по этому предмету: "<<st[j].vsego;
            cout<<"Из них посещал: "<<st[j].poseshal;
            }
            cout<<"------------------------------"<<endl;
        }
}
 
int main()
{
    setlocale(0,"russian");
    int i,n;
    cout<<"Введите кол-во студентов= ";cin>>n;
    system("cls");
    student *st=new student[n];
    in(st,n);
    of(st,n);
    delete []st;
 
    return 0;
    getch();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2013, 09:45
Ответы с готовыми решениями:

Помогите исправить ошибку: string не найден оператор
Когда хочу напечатать строку string то появляется ошибка что не найден оператор #include...

Исправить ошибку "не найден оператор, принимающий левый операнд типа 'node'"
Ошибка: &quot;бинарный &quot;==&quot;: не найден оператор, принимающий левый операнд типа &quot;node&quot; (или приемлемое...

Исправить ошибку: не найден оператор, принимающий левый операнд типа "const sf::Sprite" (SFML)
при компиляции бинарный &quot;&lt;&quot;: не найден оператор, принимающий левый операнд типа &quot;const sf::Sprite&quot;...

Исправить ошибку:error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream"
Скажите пожалуйста, как исправить error C2678: бинарный &quot;&gt;&gt;&quot;: не найден оператор, принимающий...

21
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
26.06.2013, 09:50 2
Цитата Сообщение от Serega_094 Посмотреть сообщение
как исправить
Не пытаться вводить int [1]. нафига тебе массив там нужен не понятно.
0
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 09:55  [ТС] 3
Цитата Сообщение от Vourhey Посмотреть сообщение
нафига тебе массив там нужен
так ошибок меньше, он у меня на строку не 34, а на 32 ругается, в компиляторе еще 2 строчки сверху есть
0
17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
26.06.2013, 09:57 4
Если уж сделал массив, то и обращайся к каждому эл-ту, а не ко всему массиву.

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 "stdafx.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
 
using namespace std;
 
struct student 
{ char name[15];
  char sname[20];
  char group[10];
  char subject[15];
  int marks[10];
  int vsego[1];
  int poseshal[1];
};
 
void in(student *st,int n) //Функция для задания димам.структуры
{
    cout<<"Введите сведеия о студентах:"<<endl;
    //среднее кол-во предметов за семестр возьмем равным 8ж
      int kol=8;
        for(int i=0;i<n;i++)
        {
            cout<<"Студент № "<<i+1<<endl;
            cout<<"Имя: ";cin>>st[i].name;
            cout<<"Фамилия: ";cin>>st[i].sname;
            cout<<"Группа: ";cin>>st[i].group;
            for(int j=0;j<kol;j++)
            {cout<<"Предмет: ";std::cin>>st[j].subject;
                 for (int k=0; k<11; k++)
                 {cout<<"Оценки: "; cin>>st[k].marks[k];
                 }
            cout<<"Кол-во пар по этому предмету: ";cin>>st[j].vsego[i];
            cout<<"Из них посещал: ";cin>>st[j].poseshal[i];
            }
            system("cls");
        }
}
void of (student *st,int n) //Функция вывода динам.структуры
{
    int kol=8;
 //---------------------------------------------
        cout<<"Сведия о студентах:"<<endl;
        cout<<"------------------------------"<<endl;
        for(int i=0;i<n;i++)
        {
           cout<<"Студент № "<<i+1<<endl;
            cout<<"Имя: "<<st[i].name;
            cout<<"Фамилия: "<<st[i].sname;
            cout<<"Группа: "<<st[i].group;
            for(int j=0;j<kol;j++)
            {cout<<"Предмет: "<<st[j].subject;
                 for (int k=0; k<10; k++)
                 {cout<<"Оценки: "<<st[k].marks;}
            cout<<"Кол-во пар по этому предмету: "<<st[j].vsego;
            cout<<"Из них посещал: "<<st[j].poseshal;
            }
            cout<<"------------------------------"<<endl;
        }
}
 
int main()
{
    setlocale(0,"russian");
    int i,n;
    cout<<"Введите кол-во студентов= ";cin>>n;
    system("cls");
    student *st=new student[n];
    in(st,n);
    of(st,n);
    delete []st;
 
    return 0;
    getch();
}
0
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 09:58  [ТС] 5
Цитата Сообщение от Vourhey Посмотреть сообщение
Не пытаться вводить int [1]
если убрать
C++
1
2
int vsego[1];
int poseshal[1];
и написать :
C++
1
2
 int vsego;
  int poseshal;
выдает такие ошибки:
1>4лаба прогр инженерия.cpp(36): error C2065: vsego: необъявленный идентификатор
1>4лаба прогр инженерия.cpp(37): error C2065: poseshal: необъявленный идентификатор
1>4лаба прогр инженерия.cpp(58): error C2065: vsego: необъявленный идентификатор
1>4лаба прогр инженерия.cpp(59): error C2065: poseshal: необъявленный идентификатор
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
26.06.2013, 10:00 6
Цитата Сообщение от Serega_094 Посмотреть сообщение
так ошибок меньше
оставь одну пустую главную функцию, совсем ошибок не будет.
0
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 10:02  [ТС] 7
Цитата Сообщение от FireProoF Посмотреть сообщение
[k];
а почему так?

Добавлено через 1 минуту
вместо того, чтобы смеяться подсказал бы...зачет надо получить, а прогу не написал
0
17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
26.06.2013, 10:03 8
Цитата Сообщение от Serega_094 Посмотреть сообщение
а почему так?
Я не буду вникать в "логику" программы. Я указал лишь почему выдаёт ошибку.
1
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
26.06.2013, 10:05 9
Цитата Сообщение от Serega_094 Посмотреть сообщение
выдает такие ошибки:
1>4лаба прогр инженерия.cpp(36): error C2065: vsego: необъявленный идентификатор
1>4лаба прогр инженерия.cpp(37): error C2065: poseshal: необъявленный идентификатор
1>4лаба прогр инженерия.cpp(58): error C2065: vsego: необъявленный идентификатор
1>4лаба прогр инженерия.cpp(59): error C2065: poseshal: необъявленный идентификатор
Не видел я твоего кода обновленного.
Цитата Сообщение от Serega_094 Посмотреть сообщение
вместо того, чтобы смеяться подсказал бы
Почему бы и не посмеяться, если человек так весело пишет? Писать какой угодно код, руководствуясь количеством ошибок компилятора. Это же смешно.
1
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 10:14  [ТС] 10
Цитата Сообщение от Vourhey Посмотреть сообщение
Не видел я твоего кода обновленного.
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
// 4лаба прогр инженерия.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
 
using namespace std;
 
struct student 
{ char name[15];
  char sname[20];
  char group[10];
  char subject[15];
  int marks[10];
  int vsego;
  int poseshal;
};
 
void in(student *st,int n) //Функция для задания димам.структуры
{
    cout<<"Введите сведения о студентах:"<<endl;
    //среднее кол-во предметов за семестр возьмем равным 8ж
      int kol=8;
        for(int i=0;i<n;i++)
        {
            cout<<"Студент № "<<i+1<<endl;
            cout<<"Имя: ";cin>>st[i].name;
            cout<<"Фамилия: ";cin>>st[i].sname;
            cout<<"Группа: ";cin>>st[i].group;
            for(int j=0;j<kol;j++)
            {cout<<"Предмет: ";std::cin>>st[j].subject;
                 for (int k=0; k<10; k++)
                 {cout<<"Оценки: "; cin>>st[k].marks;
                 }
            cout<<"Кол-во пар по этому предмету: ";cin>>vsego;
            cout<<"Из них посещал: ";cin>>poseshal;
            }
            system("cls");
        }
}
void of (student *st,int n) //Функция вывода динам.структуры
{
    int kol=8;
 //---------------------------------------------
        cout<<"Сведия о студентах:"<<endl;
        cout<<"------------------------------"<<endl;
        for(int i=0;i<n;i++)
        {
           cout<<"Студент № "<<i+1<<endl;
            cout<<"Имя: "<<st[i].name;
            cout<<"Фамилия: "<<st[i].sname;
            cout<<"Группа: "<<st[i].group;
            for(int j=0;j<kol;j++)
            {cout<<"Предмет: "<<st[j].subject;
                 for (int k=0; k<10; k++)
                 {cout<<"Оценки: "<<st[k].marks;}
            cout<<"Кол-во пар по этому предмету: "<<vsego;
            cout<<"Из них посещал: "<<poseshal;
            }
            cout<<"------------------------------"<<endl;
        }
}
 
int main()
{
    setlocale(0,"russian");
    int i,n;
    cout<<"Введите кол-во студентов= ";cin>>n;
    system("cls");
    student *st=new student[n];
    in(st,n);
    of(st,n);
    delete []st;
 
    return 0;
    getch();
}
вот код извиняюсь, если грубовато ответил, на нервах блин...если за два дня не сдам, прощай стипуха...

Добавлено через 1 минуту
с этими:
Цитата Сообщение от Vourhey Посмотреть сообщение
1>4лаба прогр инженерия.cpp(36): error C2065: vsego: необъявленный идентификатор
1>4лаба прогр инженерия.cpp(37): error C2065: poseshal: необъявленный идентификатор
1>4лаба прогр инженерия.cpp(58): error C2065: vsego: необъявленный идентификатор
1>4лаба прогр инженерия.cpp(59): error C2065: poseshal: необъявленный идентификатор
ошибками
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
26.06.2013, 10:17 11
Цитата Сообщение от Serega_094 Посмотреть сообщение
cout<<"Кол-во пар по этому предмету: "<<vsego;
А где объект типа структуры? Все правильно, переменных у тебя нет. Потому что это члены структуры.

Добавлено через 23 секунды
Цитата Сообщение от Serega_094 Посмотреть сообщение
извиняюсь, если грубовато ответил, на нервах блин..
Нормалек все.

Добавлено через 1 минуту
Цитата Сообщение от Serega_094 Посмотреть сообщение
если за два дня не сдам, прощай стипуха...
Обидно, что программированию учатся ради стипухи.
0
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 10:20  [ТС] 12
Цитата Сообщение от Vourhey Посмотреть сообщение
А где объект типа структуры? Все правильно, переменных у тебя нет. Потому что это члены структуры.
эм, не понял до конца
Цитата Сообщение от Vourhey Посмотреть сообщение
Обидно, что программированию учатся ради стипухи.
ну как сказать, я просто далеко от дома учусь, дом в деревне...дома голову "отрежут"...
0
36 / 36 / 2
Регистрация: 28.04.2013
Сообщений: 110
26.06.2013, 10:21 13
обрати внимание на свой первоначальный код

C++
1
2
3
  int marks[10];
  int vsego[1];
  int poseshal[1];
и на эти строчки

C++
1
2
3
  cout<<"Оценки: "; cin>>st[k].marks;
  cout<<"Кол-во пар по этому предмету: ";cin>>st[j].vsego;
  cout<<"Из них посещал: ";cin>>st[j].poseshal;
а теперь подумай, что ты объявляешь и что передаёшь?
0
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 10:22  [ТС] 14
а не понял)
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
26.06.2013, 10:25 15
Цитата Сообщение от Serega_094 Посмотреть сообщение
эм, не понял до конца
У тебя есть структура. Член структуры vsego, например. Не переменная это в твоей программе. Нельзя к ней просто обратиться vsego. Нужен объект. Он у тебя есть. А ты обращаешься, как к обычной переменной.
0
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 10:26  [ТС] 16
запустилось
понял чего не хватало так правильно?
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
// 4лаба прогр инженерия.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
 
using namespace std;
 
struct student 
{ char name[15];
  char sname[20];
  char group[10];
  char subject[15];
  int marks[10];
  int vsego;
  int poseshal;
};
 
void in(student *st,int n) //Функция для задания димам.структуры
{
    cout<<"Введите сведения о студентах:"<<endl;
    //среднее кол-во предметов за семестр возьмем равным 8ж
      int kol=8;
        for(int i=0;i<n;i++)
        {
            cout<<"Студент № "<<i+1<<endl;
            cout<<"Имя: ";cin>>st[i].name;
            cout<<"Фамилия: ";cin>>st[i].sname;
            cout<<"Группа: ";cin>>st[i].group;
            for(int j=0;j<kol;j++)
            {cout<<"Предмет: ";std::cin>>st[j].subject;
                 for (int k=0; k<10; k++)
                 {cout<<"Оценки: "; cin>>st[k].marks[k];
                 }
            cout<<"Кол-во пар по этому предмету: ";cin>>st[j].vsego;
            cout<<"Из них посещал: ";cin>>st[j].poseshal;
            }
            system("cls");
        }
}
void of (student *st,int n) //Функция вывода динам.структуры
{
    int kol=8;
 //---------------------------------------------
        cout<<"Сведия о студентах:"<<endl;
        cout<<"------------------------------"<<endl;
        for(int i=0;i<n;i++)
        {
           cout<<"Студент № "<<i+1<<endl;
            cout<<"Имя: "<<st[i].name;
            cout<<"Фамилия: "<<st[i].sname;
            cout<<"Группа: "<<st[i].group;
            for(int j=0;j<kol;j++)
            {cout<<"Предмет: "<<st[j].subject;
                 for (int k=0; k<10; k++)
                 {cout<<"Оценки: "<<st[k].marks[k];}
            cout<<"Кол-во пар по этому предмету: "<<st[j].vsego;
            cout<<"Из них посещал: "<<st[j].poseshal;
            }
            cout<<"------------------------------"<<endl;
        }
}
 
int main()
{
    setlocale(0,"russian");
    int i,n;
    cout<<"Введите кол-во студентов= ";cin>>n;
    system("cls");
    student *st=new student[n];
    in(st,n);
    of(st,n);
    delete []st;
 
    return 0;
    getch();
}
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
26.06.2013, 10:28 17
Ладно. Задам тупой вопрос:
Почему здесь:
C++
1
cin>>st[i].name;
Какая-то st[i] штука... А тут:
C++
1
cin>>vsego;
такой штуки нет? Откуда разница, объяснить можешь?

Добавлено через 1 минуту
Цитата Сообщение от Serega_094 Посмотреть сообщение
запустилось
понял чего не хватало
Гуд
Цитата Сообщение от Serega_094 Посмотреть сообщение
так правильно?
Хахах, так если у тебя программа запустилась, то ты сам можешь проверить: правильно она у тебя работает, или нет.
1
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 10:30  [ТС] 18
Цитата Сообщение от Vourhey Посмотреть сообщение
Хахах, так если у тебя программа запустилась, то ты сам можешь проверить: правильно она у тебя работает, или нет.
и тут тоже посмеялся
сам знаю. что туплю спасибо за объяснения
0
36 / 36 / 2
Регистрация: 28.04.2013
Сообщений: 110
26.06.2013, 10:31 19
Цитата Сообщение от Serega_094 Посмотреть сообщение
а не понял)
по первому твоему коду, вот это :

int marks[10];
int vsego[1];
int poseshal[1];

массивы, Массив, простыми словами - это такая структура для хранения данных, как ящики твоего стола, название массива (e.g. marks)- это просто адрес в памяти (сам стол с ящиками), так вот строчкой

cin>>st[k].marks;

ты говоришь компилятору "братиш, будь котиком, кинь вот это значение в этот стол" а он тебе в ответ "а я хз в какой ящик класть, ты не указал",

потому что следовало написать cin>>st[k].marks[0];

UPD предложенный после вариант, без массивов - в 100500 раз правильней и пользуйся им. Да прибудет с тобой сила
1
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 12:11  [ТС] 20
Цитата Сообщение от el_gato_de_Ch Посмотреть сообщение
братиш, будь котиком, кинь вот это значение в этот стол"
я разобрался

Добавлено через 26 минут
Блин, что то с выводом не так

Добавлено через 1 час 10 минут
Цитата Сообщение от Vourhey Посмотреть сообщение
Хахах, так если у тебя программа запустилась, то ты сам можешь проверить: правильно она у тебя работает, или нет.
а почему она закорючки выводит? чет понять не могу...
0
26.06.2013, 12:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2013, 12:11
Помогаю со студенческими работами здесь

error C3861: clrscr: идентификатор не найден. Как исправить?
// 32532.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot;...

Исправить ошибку "не найден бинарный оператор"
if (r!=NULL) ругается на то, что в скобках и пишет: error C2678: бинарный &quot;!=&quot;: не найден...

Ошибка-идентификатор не найден , как исправить ?
.......................................................................................................

C3861: GetInt: идентификатор не найден. Вот код. Как исправить эту ошибку?
#include &quot;stdafx.h&quot; #define _XOPEN_SOURCE 500 #include &lt;conio.h&gt; #include &lt;stdio.h&gt;...


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

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