Citar
Gracias por la respuesta, pero no me has solucionado nada. igual es que no te he entendido.
Sin ofender, pero yo añadiría a eso las ganas que te lo den todo hecho. Si te miras el ejemplo que hay en en enlace de la función fgetpos() lo entenderás. Entiendo que es mucho trabajo copiar y pegar el código, compilarlo, y correrlo tú mismo para hacer la prueba, así que te dejo el código y la salida aquí:
Código
#include <stdio.h> int main() { char nombre[11] = "datos4.dat", mensaje[81]="Esto es nua rpueba usando fgetpos y fsetpos."; FILE *fichero; fpos_t posicion=0, comienzo; if( fichero ) else { return 1; } else { return 1; } return 0; }
Y su salida:
Código:
:~$ ./fichero
Fichero: datos4.dat -> creado (ABIERTO)
Posicion del fichero: 0
Escrito: "Esto es nua rpueba usando fgetpos y fsetpos."
Posicion del fichero: 44
Corregiendo errores...Escrito: "Esto es una prueba"
Posicion del fichero: 18
"Rebobinando" el fichero -> Vuelta al comienzo
Posicion del fichero: 0
Leyendo del fichero "datos4.dat"
"Esto es una prueba usando fgetpos y fsetpos."
Posicion del fichero: 44
Fichero cerrado
Y qué sacamos de todo esto? Tú cuando abres un fichero el cursor asociado a él estaría en la posición 0. Si con fgets(), o la función que sea, lees 10 carácteres (por ejemplo, los correspondientes a tus variables), entonces el cursor avanzará a la posición 10. Si luego quieres sobrescribir las variables que tenías, deberás hacer retroceder el cursor, con rewind(), con fsetpos() o con fseek() (no será porque no tengas opciones), para así cuando escribas las variables éstas sobrescriban a las que habían.
Citar
Mi verdadera duda esta en como hacer que me almacene el valor de la variable, es que no consigo hacer que me escriba nada.
fprintf()Un saludo.