Leyendo la tecla enter en un bucle en C

¿Cómo puedo leer la tecla enter en un bucle varias veces?

He intentado lo siguiente sin ningún resultado.

char c; for (i=0; i<n; i++){ c = getchar (); fflushstdin (); if (c == '\n'){ //do something } } 

Y fflushstdin:

 void fflushstdin (){ int c; while ((c = fgetc (stdin)) != EOF && c != '\n'); } 

Si leo cualquier otro carácter en lugar de la tecla Intro, funciona perfectamente, pero con la tecla Intro. En algunas iteraciones tengo que presionar la tecla Intro 2 veces.

Gracias.

EDITAR: estoy ejecutando el progtwig a través de masilla en Windows y el progtwig se ejecuta en una plataforma virtual de Linux virtualizada.

¿Por qué llamas a fflushstdin ()? Si fgetc () devuelve algo diferente de \ n, ese carácter se elimina completamente.

Esto debería funcionar:

 char prev = 0; while(1) { char c = getchar(); if(c == '\n' && prev == c) { // double return pressed! break; } prev = c; } 

Tratar

 if (ch == 13) { //do something } 

El valor ASCII de enter es 13, a veces \ n no funciona.

Deberías ir con:

 char c; for (i=0; i 

ya que 13 es el código ASCII para la tecla Enter .

Siempre se ejecuta getchar dos veces (incluso cuando no hay necesidad de eso). Intenta limitar las llamadas a fflushstdin :

 char c; for (i=0; i