¡Buenas!
para poder leer linea por linea puedes declarar una vector de caracteres de dimension "algo grande", y leerlo con fgtes:
#define LINEA_MAX 256
char linea[LINEA_MAX];
/* leemos mientras quede informacion -> mientras linea[strlen(linea)]!='\n'
ya que fgets obtiene informacion hasta (MAX_LINEA - 1) o hasta que encuentra un salto de
linea (lo almacena como ultimo caracter de la cadena) o hasta que encuentra un EOF */
do{
fgets(linea
,LINEA_MAX
,stdin
); /* y ahora con la informacion haces lo que quieras.
RECOMENDACION: usa strtok para obtener las distintas partes separadas por espacios */
}while(linea
[strlen(linea
) - 1] != '\n'); /* Al ser '\n' el ultimo caracter, ya no queda nada en la entrada */
El resto te lo dejo a ti. Tendras que estudiar las funciones de manejo de cadenas de stringh, de stdlibh, y seguramente tambien las de stdio.h.
¡Saludos!