Войти Зарегистрироваться Войти через
Главная › Все вопросы › Компьютеры › Программирование › C, C++, C#
Des-Officer 26 июля 2009 года  

2. Знающим С++

Опять-таки вопрос в конце.

// Упражнение:
/*Спроектируйте структуру по имени car, которая будет хранить
следующую информацию об автомобиле: наименование производителя
как строку в символьном массиве или в объекте string, а также год
его выпуска как целое число. Напишите программу, которая запросит
пользователя, сколько автомобилей необходимо включить в каталог.
Затем программа должна применить new для создания динамического
массива структур car указанного пользователем размера. Далее она
должна пригласить пользователя ввести наименование производителя и
год выпуска для наполнения данными каждой структуры в массиве. И,
наконец, она должна отобразить содержимое каждой структуры.*/

#include
#include
using namespace std;

struct car
{
// char name[30];
string name;
int year;
};

int main()
{
cout << "How much automobiles must be in catalogue? __\b\b";
int qwantity;
cin >> qwantity;
cin.get();

car * user = new car[qwantity];
int i;

for (i = 0; i < qwantity; ++i)
{
cout << "Enter the name of car: ";
// cin.getline(user[i].name, 30);
getline(cin,user[i].name);
cout << "Enter the year of car: ";
cin >> user[i].year;
cin.get();
}

cout << endl;

for (i = 0; i < qwantity; ++i)
{
cout <<"[" << i + 1 << "]\n";
cout << "The name: " << user[i].name << endl;
cout << "The year: " << user[i].year << endl;
}

cin.get();
return 0;
}
// Можно ли в этой программе использовать
// операцию членства через указатель (->) ?
VicVic 27 июля 2009 года
60 50
Если бы Вы создавали один динамический объект (с помощью указателя) типа car , то тогда:

car *cars = new car;
getline(cin,user->name);
................

А поскольку Вы создали массив объектов, то к членам структуры (класса) каждого члена массива нужно обращаться с помощью точки:

user[i].name
Написать комментарий
Оценить:
1очень плохой ответ
2плохой ответ
3средний ответ
4хороший ответ
5отличный ответ
Загрузка...