Les cuento que ya solucioné mi problema, lo que necesitaba era algo que pudiera sacarme el salto de línea del fgets, para eso en otro foro consulté y me dijeron que usara la función strchr, para poder reemplazar el caracter de salto de línea con el carácter de fin de cadena.
El programa quedaría así:
Código C:
Ver original#include<cstdio>
#include<cstdlib>
#include<cstring>
struct dvd {
char name[255];
char genero[50];
int discs_number;
int length;
};
int main()
{
struct dvd temporal;
char discs_number[2];
char length[4];
char *pch;
fgets(temporal.
name, 255, stdin
); // Buscas la posicion del caracter nueva linea (10) en la cadena
pch
= strchr(temporal.
name, 10); // Si la encontro, reemplazas nueva linea con nulo, que es el fin
// de cadena ('\0')
if (pch != NULL)
{
*pch = '\0';
}
printf("%s\n", temporal.
name);
fgets(temporal.
genero, 50, stdin
); pch
= strchr(temporal.
genero, 10); if (pch != NULL)
{
*pch = '\0';
}
printf("%s\n", temporal.
genero);
printf("Número de discos del DVD\n"); fgets(discs_number
, 2, stdin
);
temporal.
discs_number = atoi(discs_number
);
printf("%d\n", temporal.
discs_number);
temporal.
length = atoi(length
);
printf("%d\n", temporal.
length);
printf("%s %s %d %d", temporal.
name, temporal.
genero, temporal.
discs_number, temporal.
length); return(0);
}
De todas maneras igual se agradece la ayuda =)
Saludos!