Originariamente inviato da MItaly
fseek accetta un parametro di tipo long (con segno, visto che fseek consente anche spostamenti relativi), che in VC++ è a 32 bit. Questo significa che in un solo colpo non ti puoi muovere oltre i 2 GB, ma puoi provare a vedere se puoi risolvere con due fseek:
codice:
fseek(fp,2147483647,SEEK_SET);
fseek(fp,1073741825,SEEK_CUR);
.
grazie MItaly, questa è un problema che ancora non ho affrontato, sicuramente ne avrò bisogno nel programma. Ora però devo risolvere il problema iniziale: come faccio a inserire in una variabile un numero superiore a 2147483647?
Se non si può mi hai comunque fatto venire in mente un'altra possibile strada:
per il momento leggo il file di input e ogni tanto memorizzo in una variabile il numero di byte corrente che mi calcolo facendo una somma dei bite letti ad ogni lettura
codice:
fread(Var,LenRecord,1,fpi);
ByteLetti+=LenRecord;
al posto di contare i byte che leggo facendo una somma, posso ottenere la posizione corrente del puntatore nel file di input?