Bueno, el problema que tengo es que llevo poco tiempo programando c/c++ en linux, pero en uno de mis ejercicios necesito que el programa haga una pausa para mostrar un resultado antes de continuar, necesito que se detenga y continue cuando el usuario pulse una tecla.He leido en varios foros y encuentro algunas opciones pero ninguna me sirve. Si alguien sabe que me ayude por favor
#include <stdio.h>int main() { printf("Oye humanoide pulse una tecla para continuar....\n");// getchar esperara a que el usuario pulse una tecla para continuargetchar();// aqui sigues con el codigo que quieres que se ejecutereturn 0;}
#include <stdio.h>int main() { printf("Oye humanoide pulse una tecla para continuar....\n");// getchar esperara a que el usuario pulse una tecla para continuar__fpurge(stdin); getchar();// aqui sigues con el codigo que quieres que se ejecutereturn 0;}
Código: [Seleccionar]#include <stdio.h>int main() { printf("Oye humanoide pulse una tecla para continuar....\n");// getchar esperara a que el usuario pulse una tecla para continuargetchar();// aqui sigues con el codigo que quieres que se ejecutereturn 0;}
DIOOOOOOS en realidad no se para que hablo, nadie me escucha lo del enter ya lo puse, y lo del primer getchar.... muuuy simple, prueba a meter __fpurge(stdin); como dije antes, siempre quedan datos en el buffer del teclado sin recoger, con la primera llamada al getchar que estas haciendo recoges estos datos hasta que encuentra un \n que suele ser el final ( no hace falta que entiendas esto, solo PONLO xD) con la segunda ya no quedan datos basura...repito porque el mensage de antes debe de ser invisible o algo... en windows esto se hacia con fflush, sin embargo en UNIX no vale, solo para buffers de salida, no como el teclado que es de entrada, asi que tienes que usar __fpurge(stdin); (en este caso en particular...ale a provar!! ya me contareis, en caso de alguna duda "man __fpurge" en la terminal
FPURGE(3) Linux Programmer's Manual FPURGE(3)NAME fpurge, __fpurge - purge a streamSYNOPSIS /* unsupported */ #include <stdio.h> int fpurge(FILE *stream); /* supported */ #include <stdio.h> #include <stdio_ext.h> void __fpurge(FILE *stream);DESCRIPTION The function fpurge() clears the buffers of the given stream. For out‐ put streams this discards any unwritten output. For input streams this discards any input read from the underlying object but not yet obtained via getc(3); this includes any text pushed back via ungetc(3). See also fflush(3). The function __fpurge() does precisely the same, but without returning a value.RETURN VALUE Upon successful completion fpurge() returns 0. On error, it returns -1 and sets errno appropriately.NOTES Usually it is a mistake to want to discard input buffers.