Так что удалите перевод строки, как только у вас будет строка:
int get_line(char *buffer, size_t max)
{
if(fgets(buffer, max, stdin) == buffer)
{
size_t len = strlen(buffer);
if(len > 0 && buffer[len - 1] == '\0')
buffer[--len] = '\0';
return len;
}
return 0;
}
ОБНОВЛЕНИЕ : Изменено, чтобы возвращать длину, что может избавить абонента от некоторых проблем Это означает, что для ввода пустой строки он вернет 0.