Ver Mensaje Individual
  #12 (permalink)  
Antiguo 04/04/2015, 18:45
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Posicionarse en el registro inicial después de una búsqueda [C]

Como te dijo lareto gran maestro, esta muy bien. =)

Yo haría algo así:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. typedef struct {
  5.     char marcado;
  6.     char ingles[30];
  7.     char espaniol[30];
  8. } Traductor;
  9.  
  10. int main (){
  11.     FILE * f;
  12.    
  13.     f = fopen( "prueba.txt", "w+" );
  14.     if (  f == NULL ){
  15.         ferror(f);
  16.         return 1;
  17.     }
  18.    
  19.     //preparamos una estructura
  20.     Traductor t[5] = {
  21.         { '+', "door", "puerta"},
  22.         { '+', "window", "ventana"},
  23.         { '+', "rueda", "wheel"},
  24.         { '+', "main", "principal"},
  25.         { '+', "out", "salida"}
  26.     };
  27.    
  28.     //grabamos en el fichero la estructura
  29.     int i;
  30.     for ( i = 0; i < 5; i++ ){
  31.         fprintf( f, "%c %-30s %-30s\n",t[i].marcado, t[i].ingles,t[i].espaniol );
  32.        
  33.     }
  34.    
  35.     //volvemos a leer y sacamos lo leido por pantalla
  36.     Traductor temp;
  37.     rewind(f);
  38.     for ( i = 0; i < 5; i++ ){
  39.         fscanf( f, /*note el espacio antes de %c y lea el comentario->*/" %c %s %s",&temp.marcado, temp.ingles, temp.espaniol ); // el espacio inicial en la cadena de formato ignora leer el enter que grabamos anteriormente con fprintf para que cada estructura se guarde una abajo de otra y no todas seguidas XD
  40.         printf("%c %s %s\n",temp.marcado, temp.ingles, temp.espaniol);
  41.     }    
  42.    
  43.    
  44.     fclose(f);
  45.     getchar();
  46.     return 0;
  47. }

Así tienes hasta mas control en el formato de lo que va a salir en el fichero. Por ejemplo note que cada linea ahora es una estructura.