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

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

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

Структура и динамический массив - C++

13.11.2012, 23:31. Просмотров 432. Ответов 9
Метки нет (Все метки)

Передо мной стоит задача - создать программу, которая чем-то похожа на макет гаражного кооператива. Короче, пользователь задает число автомобилей, после чего программа при помощи new создает динамический массив из этих структур. После пользователю предлагается ввести данные об его автомобилях, и потом все это должно быть выведено на экран.
Вот что у меня пока получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
struct car  {
    char name[15];
    int year;
};
int main()
{
    int i;
    cout<<"How many cars do you wish to catalog? ";
    int col;
    cin>>col;
    car *mass=new car[col+1];
    for(i=0;i<col;i++)  {
        cout<<"Please enter the make: ";
        cin.get(mass->name,15);
        cin.get();
        cout<<"Please enter the year made: ";
        cin>>mass->year;
    }
    system("pause");
    return 0;
}
программа запускается, но не дает возможности ввести данные. Я практически уверен, что это из-за того, что я неправильно определил операторы cin, точнее, в них нет конкретной ячейки, куда вводить данные, а просто mass, и, к сожалению, я не знаю, как исправить эту проблему. Кто может чем помочь?
З.Ы.: Вывода данных нету, о них я пока не думал для начала нужно хотя бы с этим справиться
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 23:31     Структура и динамический массив
Посмотрите здесь:

Динамический массив new и его структура выделения памяти? - C++
Доброго времени суток, форумчане! Долго искал возможность определения размера динамического массива выделенного new (sizeof конечно...

Массив и память. Как создать динамический массив? - C++
не могу исправить ошибки. И нужен динамический массив я что-то попробовала для его создания но ничего не вышло #include &quot;stdafx.h&quot; ...

Статический массив в динамический массив - C++
Месяца два еще назад, во время изучения структур, выполнял простенькое задание. После изучения классов, нужно было предыдущую работу...

структура и массив - C++
подскажите пожалуйста... В чем сходство и в чем отличия таких понятий как структура и массив?

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

Динамический массив - C++
Надо: Сформировать массив строк, добавить в него строку с заданным номером. Не знаю,как добавить в него строку с заданным номером. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13045 / 7308 / 814
Регистрация: 27.09.2012
Сообщений: 18,041
Записей в блоге: 3
Завершенные тесты: 1
13.11.2012, 23:57     Структура и динамический массив #2
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
#include <iostream>
using namespace std;
 
#define clearcin while(std::cin.get()!='\n')
 
struct car  {
    char name[15];
    int year;
};
int main()
{
    int i;
    cout<<"How many cars do you wish to catalog? ";
    int col;
    cin>>col;
     clearcin;
    car *mass=new car[col+1];
    for(i=0;i<col;i++)  {
        cout<<"Please enter the make: ";
        cin.get(mass->name,15);
        cin.get();
        cout<<"Please enter the year made: ";
        cin>>mass->year;
          clearcin;
    }
    system("pause");
    return 0;
}
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
14.11.2012, 00:11     Структура и динамический массив #3
Croessmah, неправильно
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
#include <iostream>
#include <stdio.h>
using namespace std;
struct car  {
    char name[15];
    int year;
};
int main()
{
    int i;
    cout<<"How many cars do you wish to catalog? ";
    int col;
    cin>>col;
    
    //Зачем?
    //car *mass=new car[col+ 1];
    car *mass=new car[col];
 
    for(i=0;i<col;i++)  {
        cout<<"Please enter the make: ";
        
        //НЕ вводится у тебя потому, что в буфере консоли какаой-то символ уже
        //есть. Очисти буфыер консоли такой командой                          
        fflush (stdin);
 
        //неправильно; mass каждый раз в цикле указывает на один и тот же 
        // car- на нулевой. Поэтому ты просто каждый раз будешь прописывать
        //данные в нулевой элемент вот и всё. 
        //cin.get(mass->name,15);
 
        
        cin.get(mass[i].name,15);
        cin.get();
        cout<<"Please enter the year made: ";
 
        //Если всё-таки хочешь писать без индексов, то надо вот так:
        //cin>>mass++->year;
        //И по выходу из цикла кто-что сделать надо
        
        cin>>mass[i].year;
    }
    //Вот ещё что надо сделать по вызоду из цикла, если работаешь без индексов
    //mass-=i;
 
    for(i=0;i<col;i++)  {
        cout<<mass[i].name<<endl;
        cout<<mass[i].year<<endl;
    }
 
 
 
 
    getchar ();
    getchar ();
    return 0;
}
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
14.11.2012, 00:15  [ТС]     Структура и динамический массив #4
Я знаю, что я пытаюсь ввести данные в "никуда", и я пробовал использовать индекс еще в самом начале, но компилятор говорит, что я что-то делаю неправильно. Насчет динамического массива, то он должен использоваться, ведь в этом вся соль заключается. Я не против бы от него отказаться, но не могу.
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
14.11.2012, 00:20     Структура и динамический массив #5
Чё ты сказал, я не понял, а к моему коду надо добавить в конце очистку памяти:
C++
1
delete [] mass;
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
14.11.2012, 00:26  [ТС]     Структура и динамический массив #6
Вот, ознакомься пожалуйста, я попробовал по своему исправить:
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
#include <iostream>
using namespace std;
struct car  {
    char name[15];
    int year;
};
int main()
{
    int i;
    cout<<"How many cars do you wish to catalog? ";
    int col;
    col=cin.get();
    cin.get();
    car *mass=new car[col+1];
    for(i=0;i<col;i++)  {
        cout<<"Please enter the make: ";
        cin.get(mass[i].name,15);
        cin.get();
        cout<<"Please enter the year made: ";
        cin>>mass[i].year;
        cin.get();
    }
    system("pause");
    return 0;
}
Но теперь появилась новая проблема цикл не прекращается.. или может это из-за отсутсивя вывода данных..
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
14.11.2012, 00:37     Структура и динамический массив #7
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
#include <iostream>
#include <stdio.h>
using namespace std;
struct car  {
    char name[15];
    int year;
};
int main()
{
    int i;
    cout<<"How many cars do you wish to catalog? ";
    int col;
 
//Это фигня
//    col=cin.get();
//    cin.get();
 
    cin>> col;
     
    //Я тебя второй раз спрашиваю- зачем ты делаешь массив на единицу больше нужного?!
    //car *mass=new car[col+1];
 
    car *mass=new car[col];
    
    for(i=0;i<col;i++)  {
        
        //Я для кого очистку буфера писал?!
        fflush (stdin);
        
        cout<<"Please enter the make: ";
        cin.get(mass[i].name,15);
        cin.get();
        cout<<"Please enter the year made: ";
        
        cin>>mass[i].year;
        
        //Лишнеепотому, чт ты число вводишь 
        //cin.get();
    }
    return 0;
}
Croessmah
Модератор
Эксперт CЭксперт С++
13045 / 7308 / 814
Регистрация: 27.09.2012
Сообщений: 18,041
Записей в блоге: 3
Завершенные тесты: 1
14.11.2012, 00:38     Структура и динамический массив #8
Цитата Сообщение от kravam Посмотреть сообщение
Croessmah, неправильно
Ваш вариант:
Структура и динамический массив

флаш не везде катит
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
14.11.2012, 00:45     Структура и динамический массив #9
____________
Миниатюры
Структура и динамический массив  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 19:40     Структура и динамический массив
Еще ссылки по теме:

Gets и динамический массив - C++
#include &lt;iostream&gt; #include &lt;cstdio&gt; using namespace std; int main() { int size; cin &gt;&gt; size; char * string = new char ; ...

динамический массив - C++
Доброго всем времени суток.Помогите чайнику разобраться.Разбираюсь с массивами и столкнулся с не понятным,вот мой код: #include...

динамический массив - C++
такая задача: дана матрица размерностью mxn определить количество элементов являющихся простыми числами. матрица представленна в виде...

Динамический массив - C++
есть примерно такая функция: int *funktion (int size){ int *g = new int ; ... //функция работы с дин. массивом


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

Или воспользуйтесь поиском по форуму:
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
14.11.2012, 19:40  [ТС]     Структура и динамический массив #10
оу, сорри, у меня очистка буфера не сразу сработала, и я ее проигнорировал. Я просто библиотеку забыл подключить. длина массива "+1" задал машинально, не подумав. Спасибо большое за помощь
Yandex
Объявления
14.11.2012, 19:40     Структура и динамический массив
Ответ Создать тему
Опции темы

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