Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/03/2015, 17:05
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años
Puntos: 38
Respuesta: No duplicar palabra al grabar en archivo [C]

fwrite si lo pone al final y fread me parece que también lo hace o no estoy seguro... Ese es el problema si lees avanzas, si escribes avanzas.
Imaginemos que después de escribir en el fichero el puntero esta al final, lo que pasa es que al leer con fread estas leyendo desde donde se quedo con fwrite(desde el final).
Y por si fuera poco, cuando abres un archivo con los atributos "a+" estas diciendo que vas añadir contenido al final del fichero, y que también puedes leer ya que lo extendiste con el '+', puedes leer pero 'a' sitúa el puntero al final. El atributo W lo hace al principio destruyendo el fichero.
Todo se centra en tener claro en que modo de apertura estas y tener claro donde esta el puntero de escritura en todo el momento.
Si has escrito algo, el puntero avanza preparando se para una nueva escritura, luego si quiero buscar algo mejor seria abrirlo con el atributo "r", entonces el puntero se sitúa al principio, o puedo usar rewind para ponerlo al principio.

Eso es practicar y ya.

puedes abrir diferentes punteros en cada función y así no te lías, no olvides cerrarlos. Eso si.. me parece que no se puede crear indefinidos punteros a un archivo dependiendo de que sistema estés.

Puede que me haya equivocado en algo, pero muy lejo no anda el tiro.XD No soy un puto crack en C/C++ como los demás. XDD

Buen lugar para leer es aquí: http://www.c.conclase.net/ficheros/