ayuda urgente

vero
04 de Marzo del 2006
Hola miren tengo declarada una estructura y despues creo una variable de el tipo de esa estructura. Dentro de esa estructura tengo una variable char apellidos[30], deseo agregarle datos como rubio ruiz, pero a la hora de poner el scanf("%s",e1[1].apellidos) solo toma rubio y no toma a ruiz y ademas se brinca otras instrucciones que piden mas datos al usuario.

Si alguien me puede decir como solucionar este problema se lo agradeceria mucho.

ISAIAS DUQUE GOMEZ
04 de Marzo del 2006
ah pos mira, te has dado cuenta de que al usar el scanf, te corta la cadena, es decir si quieres leer un nombre por ej: pones blanca iris, te corta iris, y se saltea, probablemente has de etar usando a la vez scanf y gets, te recomiendo que uses scanf para todo...
o lo que sea cadena leelo con gets y lo que sea int con scanf, pero yo te recomiendo todo con scanf, pero no te compliques, mejor, declara en la estructura apellido1[15], apellido2[15] eso te recomiendo

ESPERO QUE TE SIRVA

ISAIAS DUQUE GOMEZ
04 de Marzo del 2006
RECUERDA QUE SCANF NO TE LEE LOS CARACTERES EN BLANCO

GETS SI

Caiman
04 de Marzo del 2006

El hecho de que tu programa te este tomando solo aquellas cadenas que no tengan espacio, es como te han dicho por el scanf, para ese tipo de cadenas usa el cin de iostream o gets de stdio.
El porqué tu programa no lee o se salta demás datos que le solicitas al usuario es por que instrucciones tales como scanf, gets o cin leen los datos del buffer por lo que tu problema, radica nuevamente con los espacios en el caso de scanf en todo caso tendrías que limpiar el buffer de entrada con fflush(stdin), pero trata de usarlo solo en aquellos casos que sean necesarios ya que no es de bueno uso, o de plano deja de usar el scanf.
Ten cuidado también con las instrucciones gets, cin y scanf ya que estas no te libran de un overflow-