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

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

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

Ошибка - C++

10.01.2012, 22:46. Просмотров 293. Ответов 3
Метки нет (Все метки)

При компиляции выдается ошибка: error: no match for 'operator[]' in 'books[i]' . Компилятор показывает, что ошибка в 30 строке.

Задание:

Массив структур, содержащие сведения о запасах некоторых товаров. Каждая структура должна содержать следующие поля: наименование товара, норматив на величину запаса (целое число в диапазоне до 5000), единица измерения (тонна, центнер, литр, упаковка и др.), текущее значение запаса. Вывести на экран сведения о товарах, запасы которых меньше норматива.

Код:
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
#include <iostream>
#include <string>
 
using namespace std;
 
struct book 
{
    string nameTov;
    string edIzm; 
    int normZap; 
    int tekZap; 
};
 
void structinput (book *books, int n) { 
        for (int i=0; i<n; i++) {
        cout << "nzvaniye tovara " << i+1 << " -> ";
        cin >> books[i].nameTov;
        cout << "edenitsa izreniya " << i+1 << " -> ";
        cin >> books[i].edIzm;
        cout << "norma zapasa " << i+1 << " -> ";
        cin >> books[i].normZap;
        cout << "tekushiy zapas " << i+1 << " -> ";
        cin >> books[i].tekZap;
        cout << endl;
    }
}
 
void structoutput (book books, int n) { 
    for (int i=0; i<n; i++) {
        if (books[i].tekZap < books[i].normZap) {
        cout << "naimenozniye tovara: " << books.nameTov << ", edenitsa izmereniya: " << books.edIzm << ", norm zapas: " << books.normZap << ", tekushiy zapas :" << books.tekZap << endl;
        }
    }
}
 
int main() {
    book *books; 
    int n;
    cout << "kolichestvo tovarov -> "; 
    cin >> n;
    books = new book[n];
    structinput(books, n);
    structoutput(*books, n);
 
    return 0;
}
Помогите исправить ошибку, пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2012, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка (C++):

Ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске программы возникает ошибка - C++
Я знаю точно, что ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске моей программы windows выдает ошибку. Почему ?...

Выскакивает ошибка Stack around the voriable 'text' was corrupted. Подскажите пожалуйста в чём ошибка - C++
Выскакивает ошибка Stack around the voriable 'text' was corrupted. Подскажите пожалуйста в чём ошибка. #include &lt;iostream&gt; #include...

Укажите где ошибка (ошибка во время выполнения программы) - C++
Здравствуйте, помогите пожалуйста найти ошибки в коде которые возникаю при выполнении программы Картинка с ошибкой внизу поста. Код: ...

Ошибка при компиляции. Где ошибка? (Работа с классом) - C++
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку приложения. ...

Реализовать через тип данных структура. При сборке и отладки возникает ошибка. В чем ошибка? - C++
С++ в таблице из 5 строк хранятся данные о товарах: наименование, цена, количество. Определить и вывести наименование товара, цена которого...

типизированный файл, ошибка ошибка при выходе - C++
Работа с типизированным файлом. В функцию вывода добавляю проверку if для вывода персонала только 1 подразделения. Выводит на 1 элемент...

3
NoMasters
Псевдослучайный
1762 / 1105 / 73
Регистрация: 13.09.2011
Сообщений: 3,141
10.01.2012, 22:55 #2
Видимо, structoutput тоже должна была принимать указатель.
1
Sakralbar
349 / 159 / 12
Регистрация: 22.12.2011
Сообщений: 342
10.01.2012, 22:56 #3
void structoutput (book books, int n)
в функции написано books вместо *books, наверно.

upd: опередили.
1
cubeman9
0 / 0 / 0
Регистрация: 10.01.2012
Сообщений: 8
10.01.2012, 23:07  [ТС] #4
Цитата Сообщение от Sakralbar Посмотреть сообщение
void structoutput (book books, int n)
в функции написано books вместо *books, наверно.

upd: опередили.
спасибо большое, помогло!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2012, 23:07
Привет! Вот еще темы с ответами:

С++ ошибка в проге, но не могу понять какая ошибка( - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;clocale&gt; using namespace std; int main (int args, const char * argv ) { ...

Ошибка 2 error LNK2019, не пойму в чем ошибка - C++
Выдает такую ошибку: Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;int __cdecl game(void)&quot; (?game@@YAHXZ) в функции....

Ошибка в коде (Ошибка сегментирования (core dumped) - C++
Добрый день. Подскажите пожалуйста, где ошибка в коде? char ch; string s; while ((ch = cin.get()) != '0' ) ...

Синтаксическая ошибка: Ошибка 1 error C2059 - C++
#include &lt;iostream&gt; using namespace std; class Cat { public:


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
10.01.2012, 23:07
Ответ Создать тему
Опции темы

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