... то что касается разных способов консольного ввода (CLI программ) данных
Все примеры здесь в архиве.
Из той же рукописи книги:
Мы построим несколько схем ввода с клавиатуры строчных данных (данные вводимые с клавиатуры всегда строчные, а что с ними уже делать дальше — это вы решите сам затем в программном коде). Но производим ввод так, чтобы иметь «цивильный» способ завершения этого ввода, а не так чтобы грубо «рубить» всю программу по Ctrl+C. Завершать ввод мы будем по традиционному в UNIX «конец ввода» (EOF): клавиатурной комбинации Ctrl+D, а ещё, альтернативно, по вводу пустой строки по Enter. (Способ завершения ввода на практике оказывается не менее важен чем само его осуществление). Наши короткие примеры в качестве результата производят эхо-повтор введенной строки (устраняя, где надо хвостовой символ перевода строки!) … а ваш код, соответственно, будет передавать их куда-то на осмысленную обработку.