Hola!!!
He estado desarrollando una pequeña agenda en C pero hay un error que no se como resolver
El error es que el programa tiene un pequeño menú, se pide la opción, que es un entero pero al pedir una cadena que es, el programa ignora el fgets() (Usando stdin para el teclado) y el programa pìde el numero de telefono
Ya he intentado limpiar el buffer de teclado con fflush(stdin), pero no funciona.
He probado mi codigo en Windows y en este si funciona, pero lo necesito para sistemas Linux
Espero sus respuestas
Saludos!!!

Buenas espeyaps, te podriamos
Buenas espeyaps,
te podriamos ayudar mucho mejor si dejaras tu codigo en el post xD
aqui tienes una pagina que se dedica a la programacion para novatos y no tan novatos -> http://www.aprendeprogramacion.net/
Si eres programador, ya sea avanzado o novato, entra en http://www.aprendeprogramacion.net/ todo para empezar a programar.
Ok! Codigo Fuente
Codigo Fuente Agenda, apenas iba voy comenzando = )
//Puse las cabeceras para que se vean en la pagina
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
FILE *al, *an;
typedef struct{
char nombre[15], telefono[10];
}persona;
int agregar(persona wey)
{
al = fopen("data","a");
if(!al)
{
printf("Error!\n");
return 1;
}
fprintf(al,"%s%s",wey.nombre,wey.telefono);
fprintf(al,"---\n");
fclose(al);
return 0;
}
int main()
{
persona w;
int opc;
do
{
printf("1.- Agregar contacto\n2.- Salir\n\n");
printf("Opcion: ");
scanf("%d",&opc);
switch(opc){
case 1:
fflush(stdin);
printf("Nombre: ");
fgets(w.nombre,15,stdin);
fflush(stdin);
printf("Telefono: ");
fgets(w.telefono,15,stdin);
agregar(w);
}
}while(opc != 2);
return 0;
}
puedes usar el clasico
puedes usar el clasico scanf
o gets, pero gets es algo peligroso pero bueno
zxk->k