На данный вопрос уже ответили:
Знающие, подскажите в чём ошибка. Задана такая задачка, надо реализовать интерфейс домашней аудио-коллекции, создал её так
struct Songs
{
char name_autor[50];
char name_song[50];
double time;
};
class Audio_Collection
{
public:
Songs audio[N];
void set_audio();
void print_audio();
void sort_name_autor();
void sort_name_song();
void sort_time();
};
Вот реализация ф-ии ввода данных,
void Audio_Collection::set_audio()
{
for (int i = 0; i < N; i++)
{
cout << "Введите имя автора(группы): ";
cin.getline(audio[i].name_autor, 50);
cout << "Введите название песни: ";
cin.getline(audio[i].name_song, 50);
cout << "Введите продолжительность трека: ";
cin >> audio[i].time;
}
}
И вот в чём загвоздка, при вводе данных возникает такая ошибка
При вводе второго последующих значений не выполняется строка
cin.getline(audio[i].name_autor, 50);
как это исправить?
Сбросьте буфер после чтения double - в нем же остается перевод строки... Добавьте после
cin >> audio[i].time;
строчку
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости