<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div>Hola, alguien me puede echar una mano con la escritura de un fichero?</div><div>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.</div><div>Tengo una struct con todos los datos necesarios y la funcion para guardar el nombre de la comida, su precio, y referencia.</div><div>Seria para buscar el plato por su referencia y que te muestre el precio y el nombre de esta.<br></div><div>Gracias por tu tiempo, un saludo<br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new
 york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">struct pedido{<br>         char telefono[50];//numero de telefono del cliente<br>         char calle[50];//nombre de calle del cliente<br>         char portal[50];<br>         char piso[50];<br>         float pedidos;//valor pedido<br>         float total_pedidos;//valor total de los
 pedidos<br>         float precio;<br>         int referencia;<br>         char plato[50];   <br>       };<br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">struct pedido comidas_precios(struct pedido comidas)<br>{<br>    struct pedido {//estructura para lectura<br>         int ref;<br>         char comida[50];<br>         float prec;<br>       
 }lectura;   <br>       <br>     int a;  <br>     int encontrado=0;  <br>     lectura.ref=0;<br>     //int com,lec;   <br>    <br>     for(a=0;a<50;a++)<br>     {<br>        comidas.plato[a] = '\0'; <br>        lectura.comida[a] ='\0';<br>     }<br>     system("cls");   <br>     FILE *fc;//fc = fichero comidas<br>     fc=fopen("C://c_files//proyecto//comidas.txt","ab+");<br>     <br>     if(fc==NULL)<br>     {<br>        printf("\nEl fichero no existe");<br>    
 }<br>     else<br>     {<br>         printf("\nIntroduce la referencia de la comida: ");<br>         scanf("%d",&lectura.ref);<br>         fflush(stdin);    <br>         rewind(fc);//pone el fichero desde el principio<br>         <br>         printf("\n%d",lectura.ref);<br>         <br>         do<br>         {<br>            fread(&comidas,sizeof(struct pedido),1,fc);<br>            if(lectura.ref ==
 comidas.referencia)<br>            {                           <br>                 encontrado = 1; <br>                 printf("\nSi"); <br>                 break;                                          <br>            }<br>        
 }while(!feof(fc));<br>         <br>         <br>         if(encontrado==1)<br>         {    <br>                fgets(comidas.plato,1,fc);<br>                printf("\nReferencia: %d",comidas.referencia);      <br>                printf("\nComida: %s",comidas.plato);<br>                printf("\nPrecio: %.2f",comidas.precio);<br>         }<br>        
 else<br>         {<br>             comidas.referencia=lectura.ref;//<br>             printf("\n%d",comidas.referencia);//<br>             printf("\nNombre del plato: ");<br>             gets(comidas.plato);<br>             printf("\nIntroduce el precio de %s: ",comidas.plato);<br>             scanf("%f",&comidas.precio);<br>             fflush(stdin);<br>            
 <br>             printf("\n%s",comidas.plato);<br>                        <br>         }<br>         fwrite(&comidas,sizeof(struct pedido),1,fc);<br>        //fgets(comidas.plato,fc);<br>     }<br>     <br>    fclose(fc);   <br>  getchar();<br>return comidas;    <br>}<br><br></div></div></body></html>