<div dir="ltr">no estoy muy seguro, de hecho creo que capas es una boludes lo que sigue...<br><br>scanf("%c<span style="background-color: rgb(255, 255, 0);">%c</span>", &caracter,&caracter2);<br><br>o podes cambiar por un getch() que lo que hace es leer un y solo un caracter del teclado.<br>
<br><br><div class="gmail_quote">El 13 de octubre de 2008 21:20, bameda <span dir="ltr"><<a href="mailto:bameda@gmail.com">bameda@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hola listeros,<br>
<br>
tratando de enseñar C++ me ha pasado un caso muy extraño:<br>
<br>
<br>
///codigo:<br>
include <stdio.h><br>
<br>
<br>
int main(){<br>
    // Para controlar las iteraciones.<br>
    int i;<br>
    // Para contar el numero de vocales.<br>
    int vocales = 0;<br>
    // Para guardar los caracteres que se leen por teclado.<br>
    char caracter;<br>
<br>
    // Repetir 10  veces (desde que i = 0, mientras i < 10)<br>
    for (i = 0; i < 10; i++){<br>
        // Imprimir<br>
        printf("Introduzca el caracter %i:\t", i + 1);<br>
        // Leemos un caracter<br>
        scanf("%c", &caracter);<br>
<br>
        // si el caracter leido es a,e,i,o,u,A,E,I,O,U<br>
        if (caracter == 'a' || caracter == 'A' || caracter == 'e' ||<br>
caracter == 'E' || caracter == 'i' || caracter == 'I' || caracter ==<br>
'o' || caracter == 'O' || caracter == 'u' || caracter == 'U'){<br>
            // Aumentamos en 1 el numero de vocales<br>
            vocales++;<br>
        } // fin if<br>
<br>
    } // fin for<br>
<br>
    // Imprimimos numero de vocales<br>
    printf("- Numero de Vocales: %i\n", vocales);<br>
    // Imprimimos numero de no vocales (10 - vocales)<br>
    printf("- Numero de Otros caracteres: %i\n", 10 - vocales);<br>
<br>
} // fin main<br>
<br>
Este código da error:<br>
$ ./prueba<br>
Introduzca el caracter 1:       a<br>
Introduzca el caracter 2:       Introduzca el caracter 3:       e<br>
Introduzca el caracter 4:       Introduzca el caracter 5:       i<br>
Introduzca el caracter 6:       Introduzca el caracter 7:       o<br>
Introduzca el caracter 8:       Introduzca el caracter 9:       u<br>
Introduzca el caracter 10:      - Numero de Vocales: 5<br>
- Numero de Otros caracteres: 5<br>
<br>
<br>
<br>
en cambio<br>
<br>
///codigo<br>
#include <stdio.h><br>
<br>
<br>
int main(){<br>
    // Para controlar las iteraciones.<br>
    int i;<br>
    // Para contar el numero de vocales.<br>
    int vocales = 0;<br>
    // Para guardar los caracteres que se leen por teclado.<br>
    char caracter;<br>
<br>
    // Repetir 10  veces (desde que i = 0, mientras i < 10)<br>
    for (i = 0; i < 10; i++){<br>
        // Imprimir<br>
        printf("Introduzca el caracter %i:\t", i + 1);<br>
        // Leemos un caracter<br>
        scanf("%c", &caracter);<br>
<br>
        // si el caracter leido es a,e,i,o,u,A,E,I,O,U<br>
        if (caracter == 'a' || caracter == 'A' || caracter == 'e' ||<br>
caracter == 'E' || caracter == 'i' || caracter == 'I' || caracter ==<br>
'o' || caracter == 'O' || caracter == 'u' || caracter == 'U'){<br>
            // Aumentamos en 1 el numero de vocales<br>
            vocales++;<br>
        } // fin if<br>
        scanf("%c", &caracter); //Leemos el ENTER<br>
    } // fin for<br>
<br>
    // Imprimimos numero de vocales<br>
    printf("- Numero de Vocales: %i\n", vocales);<br>
    // Imprimimos numero de no vocales (10 - vocales)<br>
    printf("- Numero de Otros caracteres: %i\n", 10 - vocales);<br>
<br>
} // fin main<br>
<br>
este no:<br>
$ ./prueba<br>
Introduzca el caracter 1:       a<br>
Introduzca el caracter 2:       e<br>
Introduzca el caracter 3:       i<br>
Introduzca el caracter 4:       o<br>
Introduzca el caracter 5:       u<br>
Introduzca el caracter 6:       q<br>
Introduzca el caracter 7:       q<br>
Introduzca el caracter 8:       q<br>
Introduzca el caracter 9:       q<br>
Introduzca el caracter 10:      q<br>
- Numero de Vocales: 5<br>
- Numero de Otros caracteres: 5<br>
<br>
Alguien sabe como puedo corregir el primer código sin añadir<br>
"scanf("%c", &caracter); //Leemos el ENTER"???<br>
<br>
<br>
Gracias<br>
____________________________________________<br>
|<br>
|    David Barragán Merino<br>
|    E-mail: bameda@ARROBA@<a href="http://gmail.com" target="_blank">gmail.com</a><br>
|    Ingeniería Informática<br>
|    Universidad Carlos III Madrid<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" 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><br>
</blockquote></div><br><br clear="all"><br>-- <br> (\__/) <br>(='.'=)This is Bunny. Copy and paste bunny into your <br>(")_(")signature to help him gain world domination. <br><br>
</div>