Помимо всего прочего, вы можете указать имя до 10 символов и фамилию до 15 символов.Если эти пределы достигнуты (но не превышены), а возраст представляет собой двузначное число, которое займет 66 символов - поэтому вам придется объявить string
массивом из 67 символов, чтобы справиться (включая нулевой терминатор).
Помимо этого, вы должны использовать функции или строки форматирования, которые позволяют ограничивать размер ввода - в настоящее время, если кто-то вводит имя длиной более 10 символов (и т. Д.), Вы будете растоптывать другиебиты памяти.Прошло много времени с тех пор, как я написал любой C, но использование форматных строк "% 10s" и "% 15s" может помочь в этом отношении - или использовать fgets
.
Аналогично, я бы предложил использоватьsnprintf
(или snprintf_s
, если он доступен вам) вместо sprintf
, чтобы избежать проблемы превышения выходного сигнала.Используйте возвращаемые значения всех этих методов также для обнаружения ошибок:)