[C con Clase] ficheros
felician draghici
felix1900toamna en yahoo.es
Vie Jun 14 01:51:20 CEST 2013
Hola, alguien me puede echar una mano con la escritura de un fichero?
No logro entender porque no me escribe en el fichero comidas.plato y luego no saca nada del fichero y lo tengo que escribir de nuevo,como si no se almacena nada cuando se vuelve a ejecutar el programa.
Tengo una struct con todos los datos necesarios y la funcion para guardar el nombre de la comida, su precio, y referencia.
Seria para buscar el plato por su referencia y que te muestre el precio y el nombre de esta.
Gracias por tu tiempo, un saludo
struct pedido{
char telefono[50];//numero de telefono del cliente
char calle[50];//nombre de calle del cliente
char portal[50];
char piso[50];
float pedidos;//valor pedido
float total_pedidos;//valor total de los pedidos
float precio;
int referencia;
char plato[50];
};
struct pedido comidas_precios(struct pedido comidas)
{
struct pedido {//estructura para lectura
int ref;
char comida[50];
float prec;
}lectura;
int a;
int encontrado=0;
lectura.ref=0;
//int com,lec;
for(a=0;a<50;a++)
{
comidas.plato[a] = '\0';
lectura.comida[a] ='\0';
}
system("cls");
FILE *fc;//fc = fichero comidas
fc=fopen("C://c_files//proyecto//comidas.txt","ab+");
if(fc==NULL)
{
printf("\nEl fichero no existe");
}
else
{
printf("\nIntroduce la referencia de la comida: ");
scanf("%d",&lectura.ref);
fflush(stdin);
rewind(fc);//pone el fichero desde el principio
printf("\n%d",lectura.ref);
do
{
fread(&comidas,sizeof(struct pedido),1,fc);
if(lectura.ref == comidas.referencia)
{
encontrado = 1;
printf("\nSi");
break;
}
}while(!feof(fc));
if(encontrado==1)
{
fgets(comidas.plato,1,fc);
printf("\nReferencia: %d",comidas.referencia);
printf("\nComida: %s",comidas.plato);
printf("\nPrecio: %.2f",comidas.precio);
}
else
{
comidas.referencia=lectura.ref;//
printf("\n%d",comidas.referencia);//
printf("\nNombre del plato: ");
gets(comidas.plato);
printf("\nIntroduce el precio de %s: ",comidas.plato);
scanf("%f",&comidas.precio);
fflush(stdin);
printf("\n%s",comidas.plato);
}
fwrite(&comidas,sizeof(struct pedido),1,fc);
//fgets(comidas.plato,fc);
}
fclose(fc);
getchar();
return comidas;
}
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130614/f32cd7dd/attachment.html>
Más información sobre la lista de distribución Cconclase