История изменений
Исправление MKuznetsov, (текущая версия) :
функция prompt() перегружена вредным ей функционалом. По идее - её задача выдать приглашение к вводу, считать текст и его вернуть. Я бы ей даже добавил переменные параметры, чтобы формировать приглашение через vprintf и ему подобные, просто для удобства.
и опечалю - getline не везде есть :) раз уж всё равно тренируетесь, то делайте из prompt() его альтернативу, которая не только даёт приглашение к вводу, а заодно например жрёт(игнорит) лишние пробелы
проверка корректности полученной строки - другая тема, сейчас вам нужны буквы, в другой раз цифры, в третий раз корректная дата - надо выносить из prompt() в отдельную функцию
по поводу многобайтных кодировок - у вас всё равно кругом обычный printf, так что подразумевается либо ASCII либо UTF. Забей. Потом под настроение сделаешь отдельную wprompt по аналогии wprintf
что ещё по вашему коду..переменная «ssize_t read = 0;» это жезть...делать какие-либо free() перед exit вообщем-то ненужно
Исходная версия MKuznetsov, :
функция prompt() перегружена вредным ей функционалом. По идее - её задача выдать приглашение к вводу, считать текст и его вернуть. Я бы ей даже добавил переменные параметры, чтобы формировать приглашение через vprintf и ему подобные, просто для удобства.
и опечалю - getline не везде есть :) раз уж всё равно тренируетесь, то делайте из prompt() его альтернативу, которая не только даёт приглашение к вводу, а заодно например жрёт(игнорит) лишние пробелы
проверка корректности полученной строки - другая тема, сейчас вам нужны буквы, в другой раз цифры, в третий раз корректная дата.
по поводу многобайтных кодировок - у вас всё равно кругом обычный printf, так что подразумевается либо ASCII либо UTF. Забей. Потом под настроение сделаешь отдельную wprompt по аналогии wprintf
что ещё по вашему коду..переменная «ssize_t read = 0;» это жезть...делать какие-либо free() перед exit вообщем-то ненужно