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

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

Войти
Регистрация
Восстановить пароль
 
 
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
#1

Ошибка при работе со структурой - C++

03.09.2013, 15:09. Просмотров 852. Ответов 20
Метки нет (Все метки)

Доброго времени суток!
возник очередной глупый вопрос - ЧТДН?

Объявил массив указателей на структуру, но при попытке внести в структуру данные при компиляции вылезает вот такая ошибка на каждую строку:
error: base operand of '->' has non-pointer type 'bop'

Компилятор - GCC.

В книге ответа на вопрос найти не смог. Уверен в том что так можно, ибо есть работающий код (другое "упражнение" в котором такой способ внесения данных работает без проблем.)

Заранее благодарен!


Код:
Кликните здесь для просмотра всего текста
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
struct bop{
    char FullName[80];
    char Title[80];
    char BopName[80];
    int preference; // 0- FullName, 1- Title, 2- BopName
};
 
int main()
{
    setlocale(LC_CTYPE, "");
 
    bop* Arr=new bop[3];
 
    Arr[0]->FullName="Charli Parker";
    Arr[0]->Title="God";
    Arr[0]->BopName="Frick";
    Arr[0]->preference=0;
 
    Arr[1]->FullName="John Bim";
    Arr[1]->Title="Love";
    Arr[1]->BopName="White";
    Arr[1]->preference=1;
 
    Arr[2]->FullName="Eric Pirce";
    Arr[2]->Title="Sec";
    Arr[2]->BopName="Black";
    Arr[2]->preference=2;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2013, 15:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при работе со структурой (C++):

Ошибка при работе со структурой - C++
#include <iostream.h> #include <conio.h> #pragma argsused float v; struct GOODS { unsigned quantity; float price;}; ...

Не могу найти ошибку в работе со структурой студентов - C++
не могу найти ошибку. помогите! #include <stdio.h> #include <io.h> #include <math.h> #include <iostream.h> #include <conio.h> ...

Не является внутренней или внешней командой - ошибка не при компиляции а при работе программы - C++
В VS скомпилировал код #include <iostream> using namespace std; int main() { int a; cout<<"Hallo"; cin>>a; cout<<a; ...

В работе необходимо организовать однонапрямлений список структурой с именем AEROFLOT, что содержит следующие поля: - C++
помогите переделать задачу. вот условие. В работе необходимо организовать однонапрямлений список структурой с именем AEROFLOT,...

Ошибка при работе с очередью - C++
#include "stdafx.h" #include <iostream> using namespace std; struct link{ int data; link* next; };

Ошибка при работе с портами - C++
Следующ.кусок кода определяет нажата клавиша Esc или F8. После компиляции при запуске проги и при нажатии F8 вызывается функция printf...

20
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,062
Завершенные тесты: 1
03.09.2013, 15:55 #16
Цитата Сообщение от h_wolf Посмотреть сообщение
char FullName;
ну вот это у вас для имени один char, а нужен массив для стоки, например char fullName[64]; ...- в данном случае 64 символа на имя
1
Rogov
8 / 8 / 1
Регистрация: 06.07.2013
Сообщений: 21
03.09.2013, 15:57 #17
C++
1
2
3
 char FullName;
    char Title;
    char BopName;
на самом деле ошибка тут.
Размер чара укажите и все будет ок
1
eXtream
24 / 24 / 0
Регистрация: 10.03.2010
Сообщений: 161
03.09.2013, 16:00 #18
весь листинг в студию!
0
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
03.09.2013, 16:02  [ТС] #19
Rogov, Raali, я -балбес! конечно! Забыл вернуть размер после изменения на string!
0
eXtream
24 / 24 / 0
Регистрация: 10.03.2010
Сообщений: 161
03.09.2013, 16:04 #20
C++
1
2
3
4
5
6
struct bop{
    char FullName[MAX_PATH];
    char Title[MAX_PATH];
    char BopName[MAX_PATH];
    int preference; // 0- FullName, 1- Title, 2- BopName
};
0
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
03.09.2013, 16:06  [ТС] #21
eXtream,

С использование char:
Кликните здесь для просмотра всего текста
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 <string>
#include <cstring>
 
 
using namespace std;
 
const int StrSize=80;
 
struct bop{
    char FullName[StrSize];
    char Title[StrSize];
    char BopName[StrSize];
    int preference; // 0- FullName, 1- Title, 2- BopName
};
 
int main()
{
    setlocale(LC_CTYPE, "");
 
    bop* Arr=new bop[3];
 
    strcpy(Arr[0].FullName,"Charli Parker");
    strcpy(Arr[0].Title,"God");
    strcpy(Arr[0].BopName,"Frick");
    Arr[0].preference=0;
 
    strcpy(Arr[1].FullName,"John Bim");
    strcpy(Arr[1].Title,"Love");
    strcpy(Arr[1].BopName,"White");
    Arr[1].preference=1;
 
    strcpy(Arr[2].FullName,"Eric Pirce");
    strcpy(Arr[2].Title,"Sec");
    strcpy(Arr[2].BopName,"Black");
    Arr[2].preference=2;
 
    cout<<"Выберите способ отобрадения:"<<endl;
    cout<<"a) Отобразить имена\t\tb) Отобразить титул"<<endl;
    cout<<"c) отобразить имя БОП\t\td) Отобразить по предпочтинию"<<endl;
    char Sw;
    while(Sw!='q'){
 
    cin>>Sw;
 
    switch(Sw)
    {
    case 'a':
        for(int i=0; i<3; i++)
            cout<<Arr[i].FullName<<endl;
        break;
    case 'b':
        for(int i=0; i<3; i++)
            cout<<Arr[i].Title<<endl;
        break;
    case 'c':
        for(int i=0; i<3; i++)
            cout<<Arr[i].BopName<<endl;
        break;
    case 'd':
        for(int i=0; i<3; i++){
            if(Arr[i].preference==0)
                cout<<Arr[i].FullName<<endl;
            else if(Arr[i].preference==1)
                    cout<<Arr[i].Title<<endl;
            else cout<<Arr[i].BopName<<endl;
        }
        break;
    }
    }
    cout<<"Bye\n";
 
    delete [] Arr;
 
    return 0;
}


с использование string см.выше.


Всем огромное спасибо за помощь!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2013, 16:06
Привет! Вот еще темы с ответами:

Ошибка при работе с вектором - C++
Добрый вечер. у меня есть класс рабочего табеля, в котором есть поле вектора, в каждом элементе содержится количество рабочих часов в...

Ошибка при работе с мютексом - C++
Пытаюсь написать класс защищенный стек, но получаю ошибку при работе с мютексом: error C2248: std::mutex::mutex: невозможно обратиться к...

Ошибка при работе с файлами - C++
Необходимо, создать текстовый файл со случайным именем в диапазоне 8 символов, латиница. Вот код: int main() { ...

ошибка при работе со стуктурами - C++
Возникает проблема при передаче структурных переменных в ф-цию Например: void showdatabase(struct Company *a,int i) { cin&gt;&gt;a.salary; ...


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

Или воспользуйтесь поиском по форуму:
21
Yandex
Объявления
03.09.2013, 16:06
Ответ Создать тему
Опции темы

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