[C con Clase] Saber cuando se ha presionado Enter...

Christian Segundo titinlou_2006 en yahoo.es
Dom Abr 10 19:22:08 CEST 2011


Gracias por responder a ambos, pero lo he intentado de mil maneras:

scanf("%s", dat[i]);
        if(dat[i]=='\n')
            break;

scanf("%s", dat[i]);
        if(dat[i]=="\n")
            break;

scanf("%s", dat[i]);
        if(dat[i]==" ")
            break;

Usando strcmp también, y nada, no logro que al pulsar enter salga del bucle. ¿Alguna otra idea?

--- El dom, 10/4/11, Pedro R.G. <sr.whiteskull en hotmail.com> escribió:

De: Pedro R.G. <sr.whiteskull en hotmail.com>
Asunto: Re: [C con Clase] Saber cuando se ha presionado Enter...
Para: "Lista de correo sobre C y C++" <cconclase en listas.conclase.net>
Fecha: domingo, 10 de abril, 2011 16:53




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, http://c.conclase.net/devcpp/?cap=conio , 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.
Función para convertir una cadena a un entero, atoi(),  http://c.conclase.net/curso/?cap=902d

Date: Sun, 10 Apr 2011 14:06:55 +0100
From: titinlou_2006 en yahoo.es
To: cconclase en listas.conclase.net
Subject: [C con Clase] Saber cuando se ha presionado Enter...

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...

Pongo lo que tengo hasta ahora.

#include <stdio.h>
main()
{
    char dat[100][80];
    int i=0;
    do
    {
        printf("Dato: ");
        scanf("%s",
 dat[i]);
        i++;
    }
    while(i<5);
    for(i;i>=0;i--)
        printf("\n%s\n", dat[i]);
}

Un saludo

_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ 		 	   		  

-----Adjunto en línea a continuación-----

_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110410/b73452ef/attachment.html>


Más información sobre la lista de distribución Cconclase