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

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

Войти
Регистрация
Восстановить пароль
 
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
#1

Как вытащить массив структур? - C++

27.05.2009, 17:44. Просмотров 963. Ответов 18
Метки нет (Все метки)

Вот собственно код:

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
struct CandyBar 
{
     char name[20];
     float weight;
     int colorie;
};
 
int main(int argc, char *argv[])
{
    CandyBar snack[2]; // имхо тут неправильно!
 
    CandyBar snack[0]= 
    {
              "Hello world!",
              3.14,
              2009
    };
   CandyBar snack[1]= 
    {
              "I love my work!",
              12.3,
              123
    };    
    CandyBar snack[0]= 
    {
              "Good job!",
              2.16,
              9854
    };    
    
    cout << snack[0] << "\n";
    cout << snack[1] << "\n";
    cout << snack[2] << "\n";
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2009, 17:44     Как вытащить массив структур?
Посмотрите здесь:

Как вытащить информацию с файла в массив - C++
Тоесть считывать строку по одному символу и его сохранить в массив.

Как объявить массив структур? - C++
Как задать массив в С++? Type gostinica= record FIO:string; nomer:integer; cena: integer; kolvo: integer; itogo:integer; ...

Как объявить массив структур? - C++
Здраствуйте! Подскажите пожалуйста как объявляется массив структур и как потом записать элементы туда? Например такая структура: ...

Как создать массив структур? - C++
help

Как возвращать массив структур? - C++
Понимаю тема уже поднималась, но я всёравно не могу понять... Нужно возвратить массив из структур. Знаю что нужно делать через...

Как организовать массив структур? - C++
Объясните кто-то как сделать чтобы введенные данные записывались в массив с помощью структуры. #include &lt;iostream&gt; #include &lt;string&gt;...

Как очистить статический массив структур? - C++
structure A { char name; int weight; }; A B; В массив &quot;В&quot; я считал текстовый файл, теперь его нужно очистить что-бы считать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
27.05.2009, 17:46     Как вытащить массив структур? #2
Цитата Сообщение от grrrrr Посмотреть сообщение
cout << snack[0] << "\n";
cout << snack[1] << "\n";
cout << snack[2] << "\n";
вот тут не правильно cout типа данных такого не знает, пока сами не научите, а с объявлением все нормально
да и в конце фигурной скобки закрывающейся не хватает
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
27.05.2009, 17:49  [ТС]     Как вытащить массив структур? #3
Может я просто неправильно объявляю массив структур?
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
27.05.2009, 17:51     Как вытащить массив структур? #4
Цитата Сообщение от grrrrr Посмотреть сообщение
Может я просто неправильно объявляю массив структур?
все там нормально!
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
27.05.2009, 18:13  [ТС]     Как вытащить массив структур? #5
ругается на 13 строку. Ошибка: conflicting declaration 'CandyBar snack[0u]'
там еще много ошибок(
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
27.05.2009, 18:27     Как вытащить массив структур? #6
по идее правильно делает что ругается
CandyBar snack[0]=
замени на
snack[0].name=....;
snack[0].weight=...;
snack[0].colorie=...;
и т.д. с остальными индексами
да и ретурна нема
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
27.05.2009, 19:50  [ТС]     Как вытащить массив структур? #7
Цитата Сообщение от CartmanRules Посмотреть сообщение
по идее правильно делает что ругается
CandyBar snack[0]=
замени на
snack[0].name=....;
snack[0].weight=...;
snack[0].colorie=...;
и т.д. с остальными индексами
да и ретурна нема
какого ретурна? это ведь стуктура!
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
27.05.2009, 19:55     Как вытащить массив структур? #8
grrrrr, Вобщем так сделай
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
#include <iostream>
using namespace std;
 
struct CandyBar 
{
    char name[20];
    float weight;
    int colorie;
};
 
ostream &operator << (ostream &os, const CandyBar &rhs){
    os << rhs.name << endl
       << rhs.weight << endl
       << rhs.colorie << endl;
    return os;
}
int main()
{
    CandyBar snack[2] = { 
        {"Hello world!",
        3.14,
        2009
        },
        {"I love my work!",
        12.3,
        123
        }
    };
   
    cout << snack[0] << "\n";
    cout << snack[1] << "\n";
    return 0;
}
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
27.05.2009, 20:28  [ТС]     Как вытащить массив структур? #9
ISergey,
C++
1
2
3
4
5
ostream &operator << (ostream &os, const CandyBar &rhs){
        os << rhs.name << endl
           << rhs.weight << endl
           << rhs.colorie << endl;
        return os;
этот код мне непонятен проще нельзя?
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
27.05.2009, 20:35     Как вытащить массив структур? #10
ну можешь процедуру создать
void in(CandyBar &rhs)
{
cin>>rhs.name;
cin>>rhs.weight;
cin>>rhd.colorie;
}
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
27.05.2009, 20:43  [ТС]     Как вытащить массив структур? #11
Извините за непонимание. Что такое &rhs? адрес?

Вот условие задачи:

Структура CandyBar содержит 3 элемента. Написать программу, которая создает массив из трех структур CandyBar, присваивает им значения на ваш выбор и затем выводит содержимое каждой структуры.

Также в программе не должно быть функций, циклов и выбора, т.к. в книжке это рассматривается позже.
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
27.05.2009, 20:44     Как вытащить массив структур? #12
Цитата Сообщение от grrrrr Посмотреть сообщение
Что такое &rhs?
просто имя переменной
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
28.05.2009, 00:37  [ТС]     Как вытащить массив структур? #13
Ладно, сам разберусь! Про интернет все время забываю!
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
28.05.2009, 10:35     Как вытащить массив структур? #14
чет я там ступил с процедурой примерно такая
void out(CandyBar rhs)
{
cout<<rhs.name;
cout<<rhs.weight;
cout<<rhs.colorie;
}
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
28.05.2009, 10:39     Как вытащить массив структур? #15
Цитата Сообщение от CartmanRules Посмотреть сообщение
C++
1
2
void out(CandyBar rhs)
{
передавай обект по ссылке
C++
1
2
void out(const CandyBar &rhs)
{
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
28.05.2009, 10:58  [ТС]     Как вытащить массив структур? #16
ISergey,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct CandyBar 
{
     char name[20];
     float weight;
     int colorie;
};
 
int main(int argc, char *argv[])
{
    CandyBar snack[2];  
    
    snack[0].name = "Hello world";
    snack[0].weight = 3.14;
    snack[0].colorie = 2009;    
    
    cout << snack[0].name << "\n";
    cout << snack[0].colorie << "\n";
    cout << snack[0].weight << "\n";*/
так работает, но вот ругается на массив символов, когда делаю присвоение snack[0].name = "Hello world";
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
28.05.2009, 11:03     Как вытащить массив структур? #17
Цитата Сообщение от grrrrr Посмотреть сообщение
так работает, но вот ругается на массив символов, когда делаю присвоение snack[0].name = "Hello world";
Правильно и делает. "С" строки нужно так копировать
C++
1
strcpy(snack[0].name,"Hello world");
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
28.05.2009, 12:45  [ТС]     Как вытащить массив структур? #18
ISergey, Ура! Наконец то заработало! Ща узнаю что такое "strcpy" Спасибо!

Добавлено через 1 час 36 минут 19 секунд
Эта небезопасная функция! http://ru.wikipedia.org/wiki/Strcpy
И еще, у меня выскакивает системная ошибка!

пойду почитаю книжку С.Прата
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2009, 12:52     Как вытащить массив структур?
Еще ссылки по теме:

Как записать массив структур в файл - C++
Ребят всем привет у меня такой вопрос как мне записать #include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;iomanip&gt; #include...

C++ Как удалить динамический массив структур - C++
Как удалить массив структур, который был создан через new? Через deletedata, как заметил не чистится template &lt;typename T1, typename...

Как создать динамический массив структур? - C++
А как работать с вектором если я хочу динамический массив структур? т.е. допустим struct tovar { string name; int cost; ...

Как вернуть массив структур (слабонервным не смотреть) - C++
В продолжении темы любви со структурами. Часть функций потырена с последней темы (чтоб лишний раз сюда не копипастить). Добрый...

Как считать массив структур из файла txt - C++
#include &quot;stdafx.h&quot; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; struct slug { char...


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

Или воспользуйтесь поиском по форуму:
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
28.05.2009, 12:52     Как вытащить массив структур? #19
Цитата Сообщение от grrrrr Посмотреть сообщение
Эта небезопасная функция!
Угу обрадовал.. Юзай std::string и будет тебе щастье. Strings library
Yandex
Объявления
28.05.2009, 12:52     Как вытащить массив структур?
Ответ Создать тему
Опции темы

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