Ahora si quisiera usar fgets, tendria que saber de antemano cuanto caracteres voy a ingresar (lo digo por el segundo argumento "int length"), cosa que no se acomoda a mis intenciones.
Te confundes, el segundo argumento es el número de caracteres MAXIMO. Puedes meter menos perfectamente.
Lo cual tiene sentido para evitar meter más caracteres de los que caben en el array.