@Ilya199

Из-за чего пропускается строка кода?

#include <iostream>

struct society
{
	char name[20];
	double sum = 0.0;	
};

int main()
{
        int count = 0;
	std::cin >> count;

	society* user = new society[count];

	std::cin.getline(user[0].name, 20);

        std::cout << user[0].name << std::endl;

        delete [] user;

	return 0;
}


std::cout << user[0].name << std::endl; - строка, которая пропускается
  • Вопрос задан
  • 694 просмотра
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
std::cin >> count;
Ввели число, нажали enter. Перевод строки попал в буфер ввода.
Следующая функция
std::cin.getline(user[0].name, 20);
считала то, что было в буфере ввода до перевода строки (а именно - пустую строку).
std::cout << user[0].name << std::endl;
Вывела пустую строку, потому что между числом и переводом строки у вас ничего не было.
Программа завершила работу.
Всё правильно отработало, как и должно было.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы