Te aconsejo lo siguiente:<br><br>Lo que escribe <span id="_user_vze266ft@verizon.net" style="color: rgb(121, 6, 25);">Steven R. Davidson <span style="color: rgb(0, 0, 0);">es correcto, pero si tu ejemplo de lectura es :<br>
</span></span>cadena a leer "32[ENTER]Sergio[ENTER]"<br><br><span id="_user_vze266ft@verizon.net" style="color: rgb(121, 6, 25);"><span style="color: rgb(0, 0, 0);">Basta con indicar al scanf que lea el cambio de línea, así:</span></span><span id="_user_vze266ft@verizon.net" style="color: rgb(121, 6, 25);"><span style="color: rgb(0, 0, 0);"></span><br>
</span><br>
scanf( "%d\n", &nNumero );<br>
scanf( "%s", szNombre );<br>
<span class="q"><br></span>El primer scanf lee el número y luego el cambio de línea y el segundo solo lee la cadena no nula.<br><br>Otra forma para el mismo ejemplo sería juntar los scanf, así: <br>scanf( "%d\n%s", &nNumero, szNombre);<br>

<br><br>Saludos.<br><br>Oscar<br><div><span class="gmail_quote">El día 13/03/08, <b class="gmail_sendername">Steven R. Davidson</b> <<a href="mailto:vze266ft@verizon.net">vze266ft@verizon.net</a>> escribió:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hola Sergio,<br> <br><br> Sergio Hernández wrote:<br> <br> > ¡Hola!<br> ><br> > Estoy haciendo un programa con un menú y para leer las diferentes<br> > opciones ("strings") utilizao la función scanf() pero me surge el<br>
 > problema de que la función no me coge el esalto de línea y entonces este<br> > es leido por el siguiente scanf().<br> ><br> <br> <br>Esto no debería ocurrir. La función 'scanf()', por defecto, lee<br> caracteres hasta encontrarse con un espacio blanco: ' ', '\t', '\r',<br>
 '\n', '\v', o '\f'. Al leer caracteres, el espacio blanco, que sirve<br> como separador, es leído, extraído, pero descartado.<br> <br> Lo que sí puede ocurrir es que previamente hayas usado 'scanf()' para<br>
 leer una cadena para ser interpretada como un número. En este caso, al<br> leer cualquier carácter no perteneciente a la representación de un<br> número, la lectura y conversión se detiene sin extraer tal carácter. Por<br>
 lo tanto, éste se queda en el canal de entrada esperando su extracción.<br> Por ejemplo,<br> <br> int nNumero;<br> char szNombre[128];<br> <br> scanf( "%d", &nNumero );<br> scanf( "%s", szNombre );<br>
 <br> El usuario escribe: 32[ENTER]Sergio[ENTER]<br> Obtendríamos,<br> <br> canal de entrada <- "32\nSergio\n"<br> <br> En la primera lectura:<br> <br> canal de entrada <- "\nSergio\n"<br> nNumero <- 32<br>
 <br> En la segunda:<br> <br> canal de entrada <- "Sergio\n"<br> nNumero <- 32<br> szNombre <- "\0"<br> <br> En este caso, podrías extraer el próximo carácter '\n' con 'getchar()'.<br>
 Por ejemplo,<br> <br> scanf( "%d", &nNumero );<br> getchar();<br> scanf( "%s", szNombre );<br> <br><br> > Para solucionar esto he encontrado dos opciones pero no me gustan nada y<br> > por eso pido ayuda para ver si alguien puede solucionarme el problema.<br>
 ><br> > 1.- Utilizar la función gets, pero no quiero usar esta alternativa dado<br> > que la función no es segura y está desaconsejado su uso.<br> <br> <br>Efectivamente, no es aconsejable, pero en su lugar puedes usar<br>
 'fgets()'. Esta función es casi igual a 'gets()'. La característica que<br> te interesa es que guarda el carácter de fin-de-línea, '\n', en la cadena.<br> <br><br> > 2.- Hacer un getchar() después del scanf() pero me parece una "guarrada"<br>
 ><br> <br> <br>Entiendo. Otra solución es consultar el siguiente carácter para tomar<br> una decisión. Por ejemplo,<br> <br> int c = getchar();<br> <br> if( '\n' != c || EOF != c )<br> {<br>   // Cualquier otro carácter: devolución<br>
   ungetc( c );<br> }<br> // Si es '\n', no hacer nada: descartar<br> <br> <br> Otra posibilidad es leer cadenas de caracteres y luego procesarlas tú<br> mismo. Esto es especialmente conveniente si estamos leyendo números.<br>
 Podemos extraer la cadena hasta un separador (un espacio blanco) y luego<br> averiguar cuáles caracteres nos interesa y cuáles no.<br> <br> <br> Espero que esto te ayude.<br> <br> Steven<br> <br> <br> <br> <br> _______________________________________________<br>
 Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br> <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
 Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br> </blockquote></div><br>