<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
<div>...</div><div>...</div><div>    char cadenaNumerica[10]={0,0,0,0,0,0,0,0,0,0}; //cuidado con la "basura", en la </div><div>    unsigned char tecla=0; // medida de lo posible inicializamos las variables</div><div>    unsigned int i=0; // con un valor, esto no es BASIC</div><div>    </div><div>    printf("Introduce un número o pulsa ENTER para salir\n");</div><div>    while (tecla!=13) // el código del ENTER es 13 </div><div>    {</div><div>        tecla=getch();</div><div>        if (tecla>47 && tecla<58) // Codigo ASCII del cero al nueve</div><div>        { </div><div>            //printf("HAz pulsado un numero.\n");</div><div>            printf("%c",tecla);</div><div>            cadenaNumerica[i++]=tecla; //concatenamos letra por letra</div><div>        }</div><div>    }</div><div>    </div><div>    int numero=atoi(cadenaNumerica); // convertimos esa cadena de letras numericas en un entero</div><div>    printf("\nMi numero = %d\n", numero);</div><div>...</div><div>...</div><div><br></div>El problema de hacerlo así, ya que te comenté que hay muchas formas, es que si queremos rectificar un número introducido, deberás incluir una condición que recoja cuando es pulsada la tecla de BACKSPACE o borrar (creo que el código es el 127) y ahí realizar la operación de eliminación... suerte<br><hr id="stopSpelling">Date: Sun, 10 Apr 2011 18:22:08 +0100<br>From: titinlou_2006@yahoo.es<br>To: cconclase@listas.conclase.net<br>Subject: Re: [C con Clase] Saber cuando se ha presionado Enter...<br><br><table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top" style="font:inherit">Gracias por responder a ambos, pero lo he intentado de mil maneras:<br><br>scanf("%s", dat[i]);<br>        if(dat[i]=='\n')<br>            break;<br><br>scanf("%s", dat[i]);<br>        if(dat[i]=="\n")<br>            break;<br><br>scanf("%s", dat[i]);<br>        if(dat[i]==" ")<br>            break;<br><br>Usando strcmp también, y nada, no logro que al pulsar enter salga del bucle. ¿Alguna otra idea?<br><br>--- El <b>dom, 10/4/11, Pedro R.G. <i><sr.whiteskull@hotmail.com></i></b> escribió:<br><blockquote style="margin-left:5px;padding-left:5px"><br>De: Pedro R.G. <sr.whiteskull@hotmail.com><br>Asunto: Re: [C con Clase] Saber cuando se ha presionado Enter...<br>Para: "Lista de correo sobre C y C++" <cconclase@listas.conclase.net><br>Fecha: domingo, 10 de abril, 2011 16:53<br><br><div id="ecxyiv929608854">

<style>
.ExternalClass #ecxyiv929608854 .ecxyiv929608854hmmessage P
{padding:0px;}
.ExternalClass #ecxyiv929608854 .ecxyiv929608854hmmessage
{font-size:10pt;font-family:Tahoma;}

</style>
<font class="ecxyiv929608854Apple-style-span" face="Tahoma" size="2">Mmmm.. antes te iba a responder incorrectamente, menos mal que no llegó el mensaje. Bueno, el tema es que puedes hacerlo con getch(), usando la librería de Borland, </font><a rel="nofollow" href="http://c.conclase.net/devcpp/?cap=conio" style="font-family:Tahoma;font-size:10pt" target="_blank">http://c.conclase.net/devcpp/?cap=conio</a><font class="ecxyiv929608854Apple-style-span" face="Tahoma" size="2"> , peeero, creo que de una forma más complicada que nose si entenderás. Con getch() tomarías el valor de la tecla pulsada, por lo tanto solamente devuelve un caracter. Entonces a raíz de ese caracter debes comprobar si la tecla pulsada se trata de ENTER o no. Esto se podría hacer de muchísimas formas, desde tomar caracter a caracter por medio de un bucle y luego una vez pulsado ENTER validar la cadena y de ser válida convertirla a valor numérico, o hacerlo mucho más
 rebuscado y comprobar si la tecla pulsada es numérica por medio de getch y luego pasarlo a valor numérico y seguir tomando los demás números por medio de un scanf o similar. Si no quieres complicarte la vida, quizás la primera sugerencia te puede servir.</font><div><font class="ecxyiv929608854Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="ecxyiv929608854Apple-style-span" face="Tahoma" size="2">Función para convertir una cadena a un entero, atoi(),  <a rel="nofollow" href="http://c.conclase.net/curso/?cap=902d" target="_blank">http://c.conclase.net/curso/?cap=902d</a><br></font><br><div id="ecxyiv929608854SkyDrivePlaceholder" style="font-family:Tahoma;font-size:10pt"></div><hr id="ecxyiv929608854stopSpelling" style="font-family:Tahoma;font-size:10pt"><font class="ecxyiv929608854Apple-style-span" face="Tahoma" size="2">Date: Sun, 10 Apr 2011 14:06:55 +0100</font><br><font class="ecxyiv929608854Apple-style-span" face="Tahoma" size="2">From: titinlou_2006@yahoo.es</font><br><font class="ecxyiv929608854Apple-style-span" face="Tahoma" size="2">To: cconclase@listas.conclase.net</font><br><font class="ecxyiv929608854Apple-style-span" face="Tahoma" size="2">Subject: [C con Clase] Saber cuando se ha presionado Enter...</font><br><br><table style="font-family:Tahoma;font-size:10pt" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;font-size:inherit;line-height:inherit" valign="top">Hola, estoy empezando con esto de la programación en C y bueno, seguramente lo que pregunto sea una memez, pero vereis...Me piden un ejercicio en el que con un bucle se almacenen cadenas en una matriz bidimensional...hasta aquí todo claro, el problema es que el bucle debe
 finalizar si el usuario no introduce nada, si simplemente pulsa Enter sin introducir ningun caracter y luego mostrar los datos introducidos, no se si me explico con claridad. Bueno lo dicho, que será una tonteria pero...<br><br>Pongo lo que tengo hasta ahora.<br><br>#include <stdio.h><br>main()<br>{<br>    char dat[100][80];<br>    int i=0;<br>    do<br>    {<br>        printf("Dato: ");<br>        scanf("%s",
 dat[i]);<br>        i++;<br>    }<br>    while(i<5);<br>    for(i;i>=0;i--)<br>        printf("\n%s\n", dat[i]);<br>}<br><br>Un saludo<br></td></tr></tbody></table><br><font class="ecxyiv929608854Apple-style-span" face="Tahoma" size="2">_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ</font></div>                                    
</div><br>-----Adjunto en línea a continuación-----<br><br><div class="ecxplainMail">_______________________________________________<br>Lista de correo Cconclase <a href="http:///mc/compose?to=Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br><a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">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" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a></div></blockquote></td></tr></tbody></table><br>_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ                                     </body>
</html>