Bueno depende de si lo sabes usar, en internet puedes aprender de todo. Yo aprendi casi un idioma y en parte a programar. Pero todo esto me llevó años...
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
/**Muestra como leer un dato con scanf, de manera que el buffer quede limpio despues de la
lectura, no es necesario utilizar el fflush**/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num = 0;
char palabra[15] = {""};
printf("Ingrese un numero.\n");
scanf("%i%*c",&num); ///hack
printf("El numero ingresado fue: %i\n",num);
printf("\n\nIngrese una palabra.\n");
gets(palabra);
printf("\nLa palabra ingresada fue: %s\n",palabra);
return 0;
}
Cita de: MAFUS en 6 Octubre 2021, 20:51 PM
El problema con esa función es que si el buffer ya está vacío getchar tomará el control de la consola obligando a que el buffer se llene otra vez. Es decir: esa función sólo hace el trabajo esperado si en el buffer quedó algo.
Cita de: MAFUS en 6 Octubre 2021, 18:19 PM
Bueno, ahí va un hack que me ha funcionado siempre:fseek(stdin, 0, SEEK_END);
#include <stdio.h>
#include <stdlib.h>
#include <sysinfoapi.h>
typedef struct
{
char nombreDragon[30];
int numeroClase;
char color[15];
int puntaje;
int mes;
int dia;
}dragon;
void limpiarBuffer()
{
char c;
do
{
c = getchar();
}while( c != '\n' );
} // fin funcion
dragon cargarDatosDragon()
{
dragon aux;
SYSTEMTIME datosTiempo;
printf("\n<< Carga de datos >>\n");
printf("\nIngrese el nombre del dragon >> ");
limpiarBuffer();
gets(aux.nombreDragon);
printf("\nIngrese el numero de clase >> ");
scanf("%d",&aux.numeroClase);
printf("\nIngrese el color >> ");
limpiarBuffer();
gets(aux.color);
printf("\nIngrese el puntaje >> ");
scanf("%d",&aux.puntaje);
GetLocalTime(&datosTiempo);
aux.mes = datosTiempo.wMonth;
aux.dia = datosTiempo.wDay;
return aux;
} // fin funcion
int main()
{
dragon nuevoDragon;
nuevoDragon = cargarDatosDragon();
return 0;
} // fin main