На данный вопрос уже ответили:
Знающие, подскажите в чём ошибка. Задана такая задачка, надо реализовать интерфейс домашней аудио-коллекции, создал её так
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');
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый деньСлучайно наткнулся на функцию у которой непонятно что записано в параметрах:
Как вывести не-ASCII текст с помощью std::wcout в Windows XP, если для компиляции используется MinGW w64? Уже посмотрел кучу похожих вопросов, но ничего из этого...