He estado realizando pruebas de lectura de archivo de texto y me he encontrado con que, en Android, la función feof nunca devuelve final de archivo y la función fgets, al encontrar cadena vacía deja la aplicación colgada. Como ya he tenido experiencia en otros lenguajes con los temas de codificación de carácteres y retornos de carro, expongo la lista de todo lo que he probado:
-he probado con retornos de carro en formato Windows (CR+LF) y en fomato Unix (LF)
-he probado que la ultima linea de texto tenga retorno y sin ella
-he probado que el archivo tenga codificación ANSI y UTF-8
En todos los casos y combinaciones de ellos, lee todas las lineas pero al llegar a la última, el feof no devuelve fin de linea y al intentar leer una linea inexistente con fgets, se cuelga irremediablemente. En Windows funciona correctamente.
Este sería el loop de lectura:
_file = fopen("game-en.lng",O_READ);
while(!feof(_file))
linea = fgets(_file);
end;