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

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

Войти
Регистрация
Восстановить пароль
 
 
Serega_094
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
#1

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

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

выдает ошибку 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2013, 09:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не найден оператор, как исправить (C++):

Помогите исправить ошибку: string не найден оператор - C++
Когда хочу напечатать строку string то появляется ошибка что не найден оператор #include &lt;iostream&gt; #include &lt;fstream&gt; using...

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

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

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

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

Не найден оператор - C++
Здравствуйте! Проблема такая: lab.h #include &lt;map&gt; #include &lt;string&gt; #include &lt;iterator&gt; using namespace std; class...

21
Serega_094
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
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
26.06.2013, 10:28 #17
Ладно. Задам тупой вопрос:
Почему здесь:
C++
1
cin>>st[i].name;
Какая-то st[i] штука... А тут:
C++
1
cin>>vsego;
такой штуки нет? Откуда разница, объяснить можешь?

Добавлено через 1 минуту
Цитата Сообщение от Serega_094 Посмотреть сообщение
запустилось
понял чего не хватало
Гуд
Цитата Сообщение от Serega_094 Посмотреть сообщение
так правильно?
Хахах, так если у тебя программа запустилась, то ты сам можешь проверить: правильно она у тебя работает, или нет.
1
Serega_094
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 10:30  [ТС] #18
Цитата Сообщение от Vourhey Посмотреть сообщение
Хахах, так если у тебя программа запустилась, то ты сам можешь проверить: правильно она у тебя работает, или нет.
и тут тоже посмеялся
сам знаю. что туплю спасибо за объяснения
0
el_gato_de_Ch
35 / 35 / 1
Регистрация: 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
Serega_094
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 12:11  [ТС] #20
Цитата Сообщение от el_gato_de_Ch Посмотреть сообщение
братиш, будь котиком, кинь вот это значение в этот стол"
я разобрался

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

Добавлено через 1 час 10 минут
Цитата Сообщение от Vourhey Посмотреть сообщение
Хахах, так если у тебя программа запустилась, то ты сам можешь проверить: правильно она у тебя работает, или нет.
а почему она закорючки выводит? чет понять не могу...
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
26.06.2013, 12:34 #21
Потому что локаль не поменял, вероятно.

Добавлено через 1 минуту
Русские шрифты в консоли
0
Serega_094
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
26.06.2013, 13:15  [ТС] #22
Цитата Сообщение от Vourhey Посмотреть сообщение
Потому что локаль не поменял, вероятно.
setlocale (0,"");
не подходит?
0
26.06.2013, 13:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2013, 13:15
Привет! Вот еще темы с ответами:

Бинарный оператор не найден - C++
Класс пишу. в функции main() с помощью оператора cout пытаюсь вывести информацию. Выдает ошибка какая то Вот файл с main() ...

Не найден оператор, принимающий правый операнд - C++
Если этот вопрос обсуждался направите меня пожалуйста! #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; ...

Не найден оператор, принимающий правый операнд - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { int x=5; int y=7; std::cout &lt;&lt; endl ; ...

Ошибка: не найден оператор, принимающий левый операнд типа - C++
class Cou { double x; double y; public: static Cou Rand() {... }


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

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

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