[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: problema con scanf (novato)



segmentation fault escribió:

Bueno la versión que mandé antes me parece que tenía
comentarios de más, esta es la buena:

#include <stdio.h>
#include <stdio_ext.h>
#include <unistd.h>
#include <stdlib.h>

int N;
int a;
float dato;
char buffer;
char respuesta1,respuesta2,respuesta3;

int main(void){
	printf("mete un float\n");
	scanf("%f",&dato);
	__fpurge(stdin);
	printf("has metido : %f\n",dato);
printf("ahora los getchar\n");

	respuesta1 = getchar();
       __fpurge(stdin);
	respuesta2 = getchar();
	__fpurge(stdin);
	respuesta3=getchar();
	__fpurge(stdin);

	printf("caracter1: %c  caracter2: %c caracter3: %c\n",\
		respuesta1,respuesta2,respuesta3);
	exit(0);
}

Estupendo, muchas gracias, esta funciona perfectamente, aunque hay que darle de comer más cabeceras.. :-) He buscado lo del __fpurge en el glibc-doc en html y sí que viene (ayer anduve dando vueltas por ahí y no lo ví, estoy medio ciego)

De todas formas, es increíble la que hay que montar para hacer una cosa tan sencilla como leer un carácter. Lo curioso es que en la página del man de getchar no dice nada de esto, y podría haber advertido de toda esta serie de problemas.

En tu versión hay que dar a intro en los tres getchar(). En la original, escribir tres letras y un solo intro....Estoy hecho un lío.

Muchas gracias.

Ramiro.





Reply to: