Hola, como ya he dicho en otras ocasiones estoy siguiendo un libro para aprender a programar en C, en el capitulo 13 hay un codigo para un programa que se supone lo que hace es comparar dos caracteres...este es el codigo:
#include <stdio.h>
int main()
{
char a,b;
printf("Which character is bigger?\n"); printf("Type a single character:"); printf("Type another character:");
if(a > b)
{
printf("'%c' is greater than '%c'!\n",a
,b
); }
else if(b > a)
{
printf("'%c' is greater than '%c'!\n",b
,a
); }
else
{
printf("Next time don't press the same character"); }
return(0);
}
se suponia que todo deberia haber marchado bien, sin embargo segun se explica luego en otras paginas esto no sera asi por que la funcion
getchar() solo lee
standard input y el
output que se odtiene no es el deseado...por lo que (segun dice el libro) hay que agregar una funcion que limpie lo que
getchar() mete en la variable '
a'....esa funcion es
fflush()..
entonces el codigo quedara asi:
#include <stdio.h>
int main()
{
char a,b;
printf("Which character is bigger?\n"); printf("Type a single character:"); printf("Type another character:");
if(a > b)
{
printf("'%c' is greater than '%c'!\n",a
,b
); }
else if(b > a)
{
printf("'%c' is greater than '%c'!\n",b
,a
); }
else
{
printf("Next time don't press the same character"); }
return(0);
}
el problema es que a pesar de que agrego
fflush() el problema persiste el libro sugiere que si todo sigue igual debo agregar
fpurge() cosa que el compilador(GCC) me tira un error a causa de esa "funcion"..
!bash-4.2# gcc greater2.c -o greater2
/tmp/cckp5r6k.o: In function `main':
greater2.c:(.text+0x33): undefined reference to `fpurge'
collect2: error: ld returned 1 exit status
entonces me pregunto..estare haciendo algo mal? por que fflush() no funciona? y ademas fpurge() me causa errores, habra otra solucion?
saludos y gracias