Buenas, soy nuevo en el foro, tengo un problema (en realidad varios) con el ingreso de datos flotantes a un archivo. Puedo ingresar enteros, char y strings pero al ingresar el flotante me pone 0.00.
Uso struct para declarar todos los tipos de datos, este es el pedazo de codigo que uso para ingresarlos al archivo
pArchivo=fopen("productos.dat","w");
if(pArchivo!=NULL){
printf("Ingrese numero de articulo\n");
scanf("%d",&prod.art);
fflush(stdin);
while(prod.art!=0){
printf("Ingrese categoria\n");
scanf("%c",&prod.cat);
fflush(stdin);
printf("Ingrese marca\n");
scanf("%s",prod.marca);
fflush(stdin);
printf("Ingrese descripcion\n");
scanf("%s",prod.des);
fflush(stdin);
printf("Ingrese precio\n");
scanf("%.2f",&prod.precio);
fflush(stdin);
fprintf(pArchivo,"%d\t%c\t%s\t%s\t%.2f\n",prod.art ,prod.cat,prod.marca,prod.des,prod.precio);
printf("Ingrese numero de articulo\n");
scanf("%d",&prod.art);
fflush(stdin);
}
fclose(pArchivo);
}
return 0;
Como dije, todos los datos ingresan correctamente, menos el flotante. ¿Que estoy haciendo mal?
Y otra pregunta, ¿tengo que hacer algo diferente para escribir el archivo en binario ? (aparte de poner "wb")
Gracias!