[ Foro de C ]
hola mi duda es para el siguiente ejercicio:
Un ?struct? que almacene datos de una canción en formato MP3: Artista, Título, Duración (en segundos), Tamaño del fichero (en KB). Un programa debe pedir los datos de una canción al usuario, almacenarlos en dicho ?struct? y después mostrarlos en pantalla.
He hecho el codigo de la siguiente manera, pero no se si es exactamente eso lo que pide el ejercicio.
#include <stdio.h>
struct Cancion
{
char artista;
char titulo;
int duracion;
int peso;
}
main(){
struct Cancion MP3;
printf("Ingrese nombre del artista: ");
scanf("%s",MP3.artista);
printf("\nIngrese nombre del titulo: ");
scanf("%s",MP3.titulo);
printf("\nIngrese el tamaño: ");
scanf("%d",MP3.peso);
printf("\nSe han ingresado correctamente los datos");
}
Cuando ejecuto el programa ingreso un nombre y no hace nada.
Mi pregunta es asi de esa forma deberia tomar los datos ingresado por teclado? si no es de esa forma, cual es la forma correcta de hacerlo?
Desde ya muchas gracias
Por una parte, es que tu programa no debe hacer "casi nada": sólo escribir
Se han ingresado correctamente los datos
Si ni siquiera ves eso, puede ser porque se cierre la ventana inmediatamente, sin darte tiempo a leer nada, algo habitual si usas un entorno de desarrollo para Windows. Puedes añadir "getchar();" al final del programa.
Es una duda frecuente. Mira aquí:
http://www.aprendeaprogramar.com/mod/forum/discuss.php?d=922
Hola, nuevamente molestando por aca, tengo una duda con respecto al ejercicio, este es el codigo que tengo:
#include <stdio.h>
struct Cancion
{
char artista[50];
char titulo[30];
int duracion;
int peso;
}
main(){
struct Cancion MP3;
MP3.artista="Mana";
MP3.titulo="Rayando el sol";
MP3.duracion=120;
MP3.peso=3024;
printf(" -MP3-\n");
printf("Artista: %s\n",MP3.artista);
printf("Titulo: %s\n",MP3.titulo);
printf("duracion: %d\n",MP3.duracion);
printf("Tamaño: %d\n",MP3.peso);
}
Porque me da un error cuando quiere asignar MP3.artista="mana" si lo he declarado como char. O hay otra forma de hacerlo.
Por cierto eso es lo que pide el ejercicio? si es que entendi bien ahora...
Y por cierto uso Linux - Debian como entorno de desarrollo.
En C no es válido hacer en general algo
texto="hola";
Sólo se puede hacer en el momento estricto en el que se declara la variable, pero no más adelante. La forma de dar un valor a una variable de texto es
strcpy(texto,"hola");
De igual modo, en tu caso, para dar valor a los campos de texto tendrás que hacer
strcpy(MP3.artista,"Mana");
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)