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

Вызов структуры из структуры - C++

Восстановить пароль Регистрация
 
_Eldar_
 Аватар для _Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200
07.02.2010, 07:00     Вызов структуры из структуры #1
Привет всем. Не получается вызвать структуру из структуры, помогите пжлст.
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
#include <stdio.h>
#include <fstream>
#include <windows.h>
#include <string>
#include <conio.h>
 
using namespace std;
struct NOTEBOOK {
   char model[21]; //наименование модели
   struct size{    //габаритные размеры
       float x; 
       float y;
       float z;
   };
   float w;        //вес 
   int price;      //цена
   int chastota;    //частота
} note[16];
 
int read_txt(void);
 
int main(){
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    printf("\nПрограмма запущена\n\n");
 
    int answer = read_txt();
    if (answer) printf("\nОшибка чтения\n");
    else {
        printf("\nДанные записаны в структуру\n");      
    }
    _getch();
    return 0;
}
 
int read_txt(void){
 
    ifstream fin("D:\\C++\\Projects\\note.txt");
    if(!fin) return 1;
    char buf[77];
    int i, count = 0;
    while(fin.getline(buf,77)){
        count++;
        for(i = 0; i < 20; i++) note[count].model[i] = buf[i];
        for(i = 30; i < 34; i++) note[count].size.x = buf[i];
    }   
 
    for(i = 0; i < 16; i++)
        printf("\n%s, %i", note[i].model, note[count].size.x);
    
    return 0;
}
ошибки :
>------ Build started: Project: Function, Configuration: Debug Win32 ------
1>Compiling...
1>function.cpp
1>d:\c++\projects\function\function\function.cpp(47) : warning C4832: token '.' is illegal after UDT 'NOTEBOOK::size'
1> d:\c++\projects\function\function\function.cpp(10) : see declaration of 'NOTEBOOK::size'
1>d:\c++\projects\function\function\function.cpp(47) : error C2274: 'function-style cast' : illegal as right side of '.' operator
1>d:\c++\projects\function\function\function.cpp(47) : error C2228: left of '.x' must have class/struct/union
1>d:\c++\projects\function\function\function.cpp(51) : warning C4832: token '.' is illegal after UDT 'NOTEBOOK::size'
1> d:\c++\projects\function\function\function.cpp(10) : see declaration of 'NOTEBOOK::size'
1>d:\c++\projects\function\function\function.cpp(51) : error C2274: 'function-style cast' : illegal as right side of '.' operator
1>d:\c++\projects\function\function\function.cpp(51) : error C2228: left of '.x' must have class/struct/union
1>Build log was saved at "file://d:\C++\Projects\Function\Function\Debug\BuildLog.htm"
1>Function - 4 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Добавлено через 38 минут
Все решение нашел), надо было объявить переменную с типом структура size, и уже через нее обращаться к внутренней структуре.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct NOTEBOOK {
   char model[21]; //наименование модели
   struct SIZE{      //габаритные размеры
       float x; 
       float y;
       float z;
   } size;
   float w;           //вес 
   int price;         //цена
   int chastota;    //частота
} note[16];
 
................
 
note[count].size.x
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2010, 07:00     Вызов структуры из структуры
Посмотрите здесь:

C++ 2 структуры
Структуры C++
Структуры Оо C++
Структуры C++
структуры си++ C++
C++ Вызов из структуры
C++ Структуры
C++ структуры C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 17:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru