En efecto, coincido con agustín. Chema es bastante activo en este foro y en varias ocaciones ha sacado de dudas a varios usuarios que están aprendiendo.
Y recordá.
El informático se caracteriza por su certeza. No cree saber; lo sabe o no. Si lo sabe, puede explicarlo, y si no lo sabe aprende.
Siempre tratamos de evitar las ambiguedades. Y si se presentan, se recaba información hasta tener clara la tarea que se deberá llevar a cabo.
En cuanto a tu problema, revisé la web y no encontré un codigo identico al que acabás de escribir. Encontré uno similar.
Tal y como lo veo y lei esplicacion que dan en esa pagina, no veo incongruencia, al contrario, todo me suena bastante bien y lógico.
"¿Cómo se guarda el texto introducido por teclado en un archivo? "
Yo creo que lei en algún lado que la lectura y escritura normal en archivos es caracter a caracter. Pero como comienzo con archivos recién la semana que biene aún no estoy muy seguro de este punto.
"¿Se puede utilizar directamente el archivo stdin y leerlo para obtener el texto guardado en su interior, o hay que utilizar la cadena de texto con tamaño definido utilizada en la función fgets?"
--Idem--
En cuanto a:
"Pero en esencia quiero poder introducir texto por teclado y que al pulsar intro no se salga de la lectura, sino que haga salto de línea.
Que salga de otra manera"
"Yo" haría lo siguiente:
Mientras que el scanf de la cadena no diera EOF segir leyendo cadena. Dentro del bucle, con cada enter se generaría una cadena, gardaría esa cadena en el archivo(de la manera en que se haga), luego introduciria el salto de linea en el archivo manualmente. Y vuelvo a bucle.
El ejemplo que te estoy dando es en base al formato en el que veo el texto en mi cabeza.
Quizás quieras el texto en un formato(presentacion) distinto al que yo planeteo.