Gracias....
Cómo uso el fgets?
Traté de usar para una sola entrada para el miembro nombre (ignorando y borrando los demás miembros de la estructura nodo) : fgets(nuevo->nombre, 31, stdin); y NO FUNCIONA....
/*5 El programa para ubicar un disco de una colección de música que se encuentra ordenada en
estantes debe tener los siguientes datos:
a Nombre el disco
b Grupo musical
c Soporte (vinilo, CD, cassette)
d Año de lanzamiento
e Categorı́a (clásica, jazz, folclore, tango, etc)
f Ubicación (estante en el cual se encuentra)*/
#include <stdio.h>
#include <stdlib.h>
typedef struct nodo{
char album[50];
char nombre[50];
char soporte[31];
int year;
char category[31];
int ubicacion;
struct nodo *siguiente;
}nodo;
void ingresar_Nodo();
void desplegar_Lista();
nodo *primero=NULL;
nodo *ultimo=NULL;
FILE *a;
int main(){
puts("----BIENVENIDO---\t\n"); int OPTION;
do{
printf("1) Ingresar álbum.\n 2) Desplegar la lista completa de discos.\n 3)SALIR.\n"); switch(OPTION){
case 1:
ingresar_Nodo();
break;
case 2:
desplegar_Lista();
break;
}
}while(OPTION!=3);
return 0;
}
void ingresar_Nodo(){
nodo
*nuevo
=(nodo
*) malloc(sizeof(nodo
));
printf("Ingrese datos del álbum:\n"); scanf("%s", nuevo
->album
); scanf("%s",nuevo
->nombre
); scanf("%s",nuevo
->soporte
); scanf("%d",&nuevo
->year
); scanf("%s",nuevo
->category
); scanf("%d",&nuevo
->ubicacion
); nuevo->siguiente=NULL;
if(primero==NULL){
primero=nuevo;
ultimo=nuevo;
}else{
ultimo->siguiente=nuevo;
ultimo=nuevo;
}
}
void desplegar_Lista(){
puts("\tDESPLEGANDO LISTA COMPLETA....\n"); nodo
*auxiliar
=(nodo
*) malloc(sizeof(nodo
));int i=0;
auxiliar=primero;
while(auxiliar!=NULL){
printf("%s\n %s\n %s\n %d\n %s\n %d\n\n", auxiliar
->album
, auxiliar
->nombre
, auxiliar
->soporte
, auxiliar
->year
, auxiliar
->category
, auxiliar
->ubicacion
); auxiliar=auxiliar->siguiente;
i++;
}if(i==0){
}
}