• Viernes 8 de Noviembre de 2024, 23:24

Autor Tema:  Nuevo En C  (Leído 1054 veces)

hunter

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Nuevo En C
« en: Domingo 26 de Noviembre de 2006, 00:39 »
0
Hola a todos bueno soy noob en C y me gustaria ke me ayuden..
estoy leyendo un manual de C y estoy en matrices con estructuras me gustaria ke me ayuden en esto.. /* Uso DevC++*/

#include <stdio.h>
struct
{
 char nombres[50];
 unsigned char edad;
}(persona);
main()
{
 printf("Ingrese nombre: ");
 scanf("%s",&persona.nombres);
 printf("Ingrese la edad: ");
 scanf("%d",&persona.edad);
 printf("Sus nombres son: %s\nSu edad es: %d",persona.nombres,persona.edad);
}
me sale todo bien pero cuando kiero poner mas de un nombre con espacios solo me sale el primer nombre y ya no me lee la edad, me he dado cuenta ke si escribo todo el nombre de corrido sin espacios si corre bien, pero me gustaria ke lo hiciera con espacios, porfavor les pidos su ayuda y explikenme ke pasa ya ke soy nuevo en esto del C...
De Antemano Gracias xD!

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Nuevo En C
« Respuesta #1 en: Domingo 26 de Noviembre de 2006, 00:50 »
0
usá gets o fgets en lugar de scanf,

Código: Text
  1.  
  2. char nombre[50];
  3. printf( &#34;Ingrese nombre:&#092;n&#34;); gets(nombre);
  4.  
Un dia sin sol es como, ya sabes, ... noche

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Nuevo En C
« Respuesta #2 en: Domingo 26 de Noviembre de 2006, 00:54 »
0
así es con scanf la cadena se trunca al poner un espacio, es como si pusieras un enter, pero sigue leyendo ;)

prueba esto y veras a lo que me refiero :D

ingresa esta cadena: asdasd 5 con scanf

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Nuevo En C
« Respuesta #3 en: Domingo 26 de Noviembre de 2006, 01:02 »
0
probá con este codigo, devería funcionar

Código: Text
  1. #include &#60;stdio.h&#62;
  2. struct
  3. {
  4. char nombres[50];
  5. unsigned char edad;
  6. }(persona);
  7.  
  8. main()
  9. {
  10. printf(&#34;Ingrese nombre: &#34;);
  11. gets(persona.nombres);
  12. printf(&#34;Ingrese la edad: &#34;);
  13. scanf(&#34;%d&#34;,&persona.edad);
  14. printf(&#34;Sus nombres son: %s&#092;nSu edad es: %d&#34;,persona.nombres,persona.edad);
  15.  
  16. }
  17.  
Un dia sin sol es como, ya sabes, ... noche