Este simple problema está causando que todo mi programa se bloquee durante la primera entrada. Si elimino la entrada, el programa funciona bien, pero una vez que agrego scanf en el código e ingreso la entrada, el programa falla.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXEMPS 3
// stub program code
int main (void){
char answer;
do
{
printf("\n Do you have another(Y/N): ");
scanf("%c", answer);
}while(answer == 'Y' || answer == 'y');
getchar();
printf(" Press any key ... ");
return 0;
} // main
fflush(stdin)
(o cualquier otro flujo para el que se ingresó la última operación) no está definido por el Estándar. Si está utilizando Windows, la operación está bien definida … pero si su código alguna vez se va a compilar en cualquier otro Sistema Operativo, tendrá un error que podría evitar en este momento. Nofflush(stdin)
!– pmg
26 de noviembre de 2011 a las 19:53
Gracias por la información sobre fflush, mi profesor nos pide que la usemos.
– BKCOHEN
26 de noviembre de 2011 a las 20:09
Hmm … el idioma estándar equivalente es
int flushstdin(void) { int ch; while (((ch = getchar()) != '\n') && (ch != EOF)) /* void */; return ch == EOF ? EOF : 0; }
. Habla con el profesor y úsalo en su lugar.– pmg
26 de noviembre de 2011 a las 20:26