Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 06.04.2019
Сообщений: 4
1

Подскажите, почему вылетает программа после ввода названия первого производителя?

06.04.2019, 15:20. Просмотров 1110. Ответов 7
Метки нет (Все метки)

# include <iostream>
using namespace std;
struct car {
char* name [] ;
int year;
};

int main(void)
{
cout<< "How many cars do you want to include in the catalog? ";
int n;
cin>>n;
car *cars= new car[n];
for( int i=0; i<n;i++)
{
cout<<"car #"<< i+1<<":"<<endl;
cout<<"Enter manufacturer: ";
cin>> cars[i].name[i];
cout<<"Enter year of production: ";
cin>> cars[i].year;
cin.get();
}
cout<< "Your car's catalog is: "<<endl;
for (int k=0;k<n; k++)
{
cout <<cars[k].name[k]<<" "<<cars[k].year<<endl;
}
delete [] cars;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2019, 15:20
Ответы с готовыми решениями:

Подскажите в чем ошибка, после ввода названия картины вылетает
type tzap=record nazv:string; imya:string; god_napis:integer; strana:integer; cena:integer;...

После ввода первого элемента программа вылетает
Добрый день. Я студент, пытаюсь сделать лабораторную работу. #include &lt;stdio.h&gt; void...

Подскажите почему после первого cout программа не останавливается для ввода строки, а выводит второй cout
Подскажите почему после первого cout программа не останавливается для ввода строки, а выводит...

Списки. Почему программа завершается после первого ввода данных?
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;cstdlib&gt; struct...

7
Продавец времени
3885 / 2179 / 490
Регистрация: 12.03.2015
Сообщений: 10,868
06.04.2019, 16:09 2
Память кто выделять будет? Пушкин?
0
0 / 0 / 0
Регистрация: 06.04.2019
Сообщений: 4
06.04.2019, 18:29  [ТС] 3
подскажите, где и как ее выделить.
0
18 / 13 / 7
Регистрация: 14.03.2019
Сообщений: 67
06.04.2019, 20:37 4
а обязательно использовать char? может заменить на тип на string?
а еще в
Цитата Сообщение от Vano94 Посмотреть сообщение
cin>> cars[i].name[i];
и в
Цитата Сообщение от Vano94 Посмотреть сообщение
cars[k].name[k]
убрать индексацию при name, чтобы было cars[i].name

Добавлено через 22 минуты
и еще лучше заменить
Цитата Сообщение от Vano94 Посмотреть сообщение
cin>> cars[i].name[i];
на
getline(cin, cars[i].name);

Добавлено через 2 минуты
если перейдешь на string

Добавлено через 1 минуту
иначе названия машин из нескольких слов не правильно отобразятся
0
С чаем беда...
Эксперт CЭксперт С++
7766 / 3735 / 1023
Регистрация: 18.10.2014
Сообщений: 7,854
06.04.2019, 20:42 5
Цитата Сообщение от Vano94 Посмотреть сообщение
C++
1
char* name [] ;
Что это за поле? В чем его назначение?
0
0 / 0 / 0
Регистрация: 06.04.2019
Сообщений: 4
06.04.2019, 20:56  [ТС] 6
c cstring уже пробовал все получалось, решил попробовать ввести несколько строк через строчный массив. Насчет того, чтобы убрать индексы выдает вот такую ошибку error: no match for ‘operator>>’ (operand types are ‘std::istream {aka std::basic_istream}’ and ‘char* [0]’)

Добавлено через 1 минуту
char* name [] ;
Хотел объявить массив из строк в структуре
0
18 / 13 / 7
Регистрация: 14.03.2019
Сообщений: 67
07.04.2019, 10:20 7
Лучший ответ Сообщение было отмечено Vano94 как решение

Решение

я бы сделал тогда как то так

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
#include <iostream>
using namespace std;
const unsigned int long_name = 10;
 
struct car {
char name[long_name];
int year;
};
 
void main (){
cout<< "How many cars do you want to include in the catalog? ";
int n;
cin>>n;
getchar();
car *cars= new car[n];
for( int i=0; i<n;i++)
{
 cout<<"car #"<< i+1<<":"<<endl;
 cout<<"Enter manufacturer: ";
 cin.getline(cars[i].name,long_name);
 cout<<"Enter year of production: ";
 cin>> cars[i].year;
 cin.get(); 
}
cout<< "Your car's catalog is: "<<endl;
for (int k=0;k<n; k++)
{
cout <<cars[k].name <<" "<<cars[k].year<<endl;  
}
delete [] cars;
    system ("pause");
}
0
0 / 0 / 0
Регистрация: 06.04.2019
Сообщений: 4
07.04.2019, 10:32  [ТС] 8
спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2019, 10:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подскажите, почему вылетает программа
пробовал написать простую змейку, вот ее код: /// snke.cpp #include &lt;iostream&gt; #include...

Программа вылетает после ввода данных
После ввода Количества вылетает, подскажите, как исправить #include &quot;stdafx.h&quot; #include...

После ввода первого обучающегося программа зависает
Готовлюсь к ЕГЭ по информатике и делаю С4 (С досрочного ЕГЭ). Вот такое задание: Муниципальный...

Подскажите почему после ввода значений работа программы прекращается?
#include &lt;cstdio&gt; #include &lt;string.h&gt; struct Pribor { char name; struct Gabarity {...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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