Código C++:
Ver original#include <stdio.h>
int main() {
char c;
int i=0, j=0;
FILE
*fp1
=fopen("archivo.txt", "r");
while(j<8){
printf("i:%d j:%d %d %c\n",i
,j
,c
, c
);
j++;
}
return 0;
}
prueben ese codigo y van a ver tambien el valor de la variable
j.
segun el razonamiento que segui (puedo estar equivocado), es que cuando
fgetc lee el ultimo caracter de la cadena mueve el puntero 1 lugar hacia la derecha, es decir, se encuentra con el caracter de fin de cadena
'\0' y lo ignora avanzando hacia el siguiente caracter y lo lee.... entonces, en ese momento,
fgetc lee 2 caracteres, ignorando 1, por eso cada vez que se encuentra con el
'\0' aumenta en 2 la posicion del puntero dentro del archivo, que es el numero que devuelve
ftell...
espero haberme explicado bien :).
saludos