Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: goll9d en 12 Mayo 2012, 05:36 AM

Título: Duda con un ejercicio
Publicado por: goll9d en 12 Mayo 2012, 05:36 AM
Disculpen pero tengo una duda.
Estoy aprendiendo c++, y no logro comprender porque me da un error.
Código (cpp) [Seleccionar]

#include<stdio.h>
#include<conio.h>
#include<iostream>

using namespace std;

struct llena{
int edad;
char nombre;
};

int main(){
llena l;
printf("Digite el nombre de la persona: "); scanf("%s",&l.nombre);
printf("Digite la edad de la persona: "); scanf("%d", &l.edad);
printf("El nombre es: %s",&l.nombre);
printf("la edad es: %d",&l.edad);
getch();
return(0);
}


Mi problema es con la edad y no logro entender el porque.
Agradezco toda la ayuda que me puedan brindar  ;) ;)
Título: Re: Duda con un ejercicio
Publicado por: Don Lucky en 12 Mayo 2012, 05:52 AM
Define la cantidad de caracteres del char.
Yo no entiendo mucho de esto igual pero la función struct no esta al pedo, osea si la sacas llegas a lo mismo.

Ah y borra los & en los printf.
Título: Re: Duda con un ejercicio
Publicado por: Belial & Grimoire en 12 Mayo 2012, 05:53 AM
 

#include<stdio.h>
#include<conio.h>
#include<iostream>

using namespace std;

struct llena{
int edad;
char nombre;
};

int main(){
llena l;
printf("Digite el nombre de la persona: "); scanf("%s",&l.nombre);
printf("Digite la edad de la persona: "); scanf("%d", &l.edad);
printf("El nombre es: %s",&l.nombre);
printf("la edad es: %d",l.edad);
getch();
return(0);
}


es la referencia de l.edad que daba el error, quitaselo
Título: Re: Duda con un ejercicio
Publicado por: durasno en 12 Mayo 2012, 06:49 AM
Hola! nombre tiene q ser un arreglo, y como ya te dijeron el & en los printf esta demas. Ademas la variable l esta mal declarada, el tipo de dato no es llena es struct llena (es un tipo de dato "compuesto")
#include<stdio.h>
#include<conio.h>
#include<iostream>

using namespace std;

struct llena{
int edad;
char nombre[20]; // declaro nombre como un arreglo
};

int main(){
struct llena l; // tipo de dato struct llena
printf("Digite el nombre de la persona: "); scanf("%s",l.nombre);
printf("Digite la edad de la persona: "); scanf("%d", &l.edad);
printf("El nombre es: %s",l.nombre);
printf("la edad es: %d",l.edad);
getch();
return(0);
}



Saludos
Título: Re: Duda con un ejercicio
Publicado por: goll9d en 13 Mayo 2012, 01:47 AM
gracias ya esta solucionado y si tienen razon los & en el printf estan de mas
Código (cpp) [Seleccionar]

printf("El nombre es: %s",l.nombre);
printf("la edad es: %d",l.edad);


y según escuche es mejor manejar un vector tipo char que un string y con eso me funciona bien
Código (cpp) [Seleccionar]
char nombre[20];

y struct no es necesario cuando la declaro
Código (cpp) [Seleccionar]
struct llena{
int edad;
char nombre[20];
};


Código (cpp) [Seleccionar]
llena l;

les agradezco mucho la ayuda.Gracias  ;-) ;-)