Estoy teniendo dificultades para entender la función fgets().
Estoy preparándome para un examen la semana que viene y me está costando entender la función fgets() en C.
Dado este ejemplo:
void main() {
FILE *fp;
char buff[2]
fp = fopen("test.txt", "r");
while (fgets(buff, sizeof(buff), fp)
/*Entiendo que este bucle devuelve verdadero mientras
no se encuentre el final del archivo*/
printf("%s", buff);
fclose(fp)
}
Por lo que entiendo, este bucle obtendrá una matriz de caracteres de 2 elementos (1 carácter + ‘\ 0’), ¿cómo sabe omitir los elementos ya obtenidos? ¿tiene algo que ver con el puntero fp?
davy.ai
La función
fgets()
lee una línea del archivo apuntado porfp
y la almacena en el arreglobuff
. El parámetrosizeof(buff)
indica afgets()
cuántos caracteres leer del archivo. El punterofp
lleva un registro de la posición actual en el archivo, por lo que cuando se llama de nuevo afgets()
, leerá la próxima línea del archivo. El ciclo continuará hasta que se alcance el final del archivo, momento en el quefgets()
devolveráNULL
.