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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.67
pro_mary
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 100
Завершенные тесты: 1
#1

Заполнение массива структур, методы cin-а - C++

14.04.2012, 23:50. Просмотров 3264. Ответов 7
Метки нет (Все метки)

Задача такая: спроектировать структуру car, в которой хранится название производителя и год выпуска, пользователь вводит количество элементов структуры, с помощью 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
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
const int s = 40;
struct car
{
    char name[s];
    int year;
};
 
int main()
{
    int n;
    cout << "Amount of cars in catalogue: ";
    cin >> n;
    car * ps = new car[n];
    int i;
 
    for (i = 0; i < n; i++)
    {
        cout << "Car # " << i + 1 << ":\nEnter name of producer: ";
        cin.get(ps[i].name, s);
        cout << "\nYear: ";
        (cin >> ps[i].year).get();
    }
 
    cout << "Your collection of cars:\n";
    for (i = 0; i < n; i++)
        cout << ps[i].year << " " << ps[i].name << endl;
    
    delete []ps;
 
    return 0;
}
Не могу разобраться с cin-ом и его вариациями.. Подскажите, пожалуйста, какие методы cin и как правильно использовать в данной задаче? Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 23:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнение массива структур, методы cin-а (C++):

Заполнение массива структур - C++
Доброго времени суток! Есть задание из массива структур, в котором хранятся данные о командах (страна, название, фамилии, номер, возраст,...

Заполнение массива структур - C++
struct _menuItems { string values = { }; }; _menuItems menuItems = { }; как заполнить элементы массива структур при...

Заполнение массива структур с консоли - C++
Доброго времени суток) Помогите пожалуйста разобраться в следующем вопросе... 3 часа уже не могу доехать что и как( примеры не...

Заполнение массива структур из файла - C++
Здравствуйте появилась проблема - никак не могу найти, как заполнить массив структур из файла. Как заполнить файл я разобрался, а наоборот...

Заполнение массива структур из файла - C++
Необходимо заполнить структуру из файла. На эту тему нашел кучу тем и кучу разных неработающих кодов-) В общем пришел к следующему коду,...

Заполнение массива структур оператором for - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; struct kuramy { char name; int hidth; int...

7
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
14.04.2012, 23:52 #2
строка 24, замените на getline или просто >>
0
pro_mary
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 100
Завершенные тесты: 1
14.04.2012, 23:58  [ТС] #3
C++
1
2
3
4
5
6
7
for (i = 0; i < n; i++)
    {
        cout << "Car # " << i + 1 << ":\nEnter name of producer: ";
        cin.getline(ps[i].name, s);
        cout << "\nYear: ";
        (cin >> ps[i].year).get();
    }
Нет, не получается..
0
Миниатюры
Заполнение массива структур, методы cin-а  
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
15.04.2012, 01:00 #4
pro_mary http://www.cplusplus.com/reference/i...tream/getline/
аргументы я буду за вас ставить? читайте как вызывается getline
C++
1
getline(тут указатель на строку, тут количество символов)
0
pro_mary
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 100
Завершенные тесты: 1
15.04.2012, 16:49  [ТС] #5
Прочитала и про аргуманты getline, и про get.. Сделала со строками, все равно не получается..
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
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
const int s = 40;
struct car
{
    string name;
    int year;
};
 
int main()
{
    int n;
    cout << "Amount of cars in catalogue: ";
    cin >> n;
    car * ps = new car[n];
    int i;
 
    for (i = 0; i < n; i++)
    {
        cout << "Car # " << i + 1 << ":\nEnter name of producer: ";
        getline(cin, ps[i].name);
        cout << "\nYear: ";
        cin >> ps[i].year;
    }
 
    cout << "Your collection of cars:\n";
    for (int i = 0; i < n; i++)
        cout << ps[i].year << " " << ps[i].name << endl;
    
    delete []ps;
 
    return 0;
}
Выводится вообще сразу два предложения о вводе.. Помогите, пожалуйста, разобраться..
0
Миниатюры
Заполнение массива структур, методы cin-а  
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
15.04.2012, 18:37 #6
я же вам написал, а вы зачем то переписали программу, поставили string.
вам надо было всего лишь заменить cin.get на cin.getline
C++
1
cin.getline(ps[i].name, 40);
в свою первую программу это вставьте
0
pro_mary
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 100
Завершенные тесты: 1
15.04.2012, 19:37  [ТС] #7
Так я уже пробовала.. Результат ниже..
0
Миниатюры
Заполнение массива структур, методы cin-а  
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
15.04.2012, 19:49 #8
потому что в 18 строке в потоке остался \n, его надо убрать через cin.get, так как это вы сделали в строке 26

Добавлено через 32 секунды
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
#include <iostream>
 
using namespace std;
 
const int s = 40;
struct car
{
    char name[s];
    int year;
};
 
int main()
{
    int n;
    cout << "Amount of cars in catalogue: ";
    (cin >> n).get();
    car * ps = new car[n];
    int i;
 
    for (i = 0; i < n; i++)
    {
        cout << "Car # " << i + 1 << ":\nEnter name of producer: ";
        cin.getline(ps[i].name, s);
        cout << "\nYear: ";
        (cin >> ps[i].year).get();
    }
 
    cout << "Your collection of cars:\n";
    for (i = 0; i < n; i++)
        cout << ps[i].year << " " << ps[i].name << endl;
 
    delete []ps;
 
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2012, 19:49
Привет! Вот еще темы с ответами:

Заполнение массива структур случайными символами - C++
Добрый день! Есть такое задание: Разработайте программу «Библиотека». Создайте структуру «Книга» (название, автор, издательство, жанр)....

Заполнение и сохранение массива структур не работает... - C++
Я хочу сделать справочник кулинарных рецептов, (в него входит: название рецепта, ингредиенты(это у меня и вызывает затруднение) и...

Заполнение динамического массива структур из бинарного файла - C++
Здравствуйте! Нужна помощь в реализации вот такого алгоритма: предположим, что изначально мы создали динамический массив структур и...

Заполнение массива структур из файла и вывод на экран/в файл - C++
Есть структура struct tovar { int nomer; char naim; char edizm; int kolvo; int cena; }; Есть файл с...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
15.04.2012, 19:49
Ответ Создать тему
Опции темы

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