Hola a todos, estoy escribiendo un intérprete BF en C y me he encontrado con un problema al leer archivos. Solía usar scanf para leer la primera cadena, pero luego no podía tener espacios ni comentarios en su código BF.Lectura de un archivo carácter por carácter en C
Ahora mismo esto es lo que tengo.
char *readFile(char *fileName)
{
FILE *file;
char *code = malloc(1000 * sizeof(char));
file = fopen(fileName, "r");
do
{
*code++ = (char)fgetc(file);
} while(*code != EOF);
return code;
}
Sé que el problema surge en la forma en que estoy asignando el siguiente caracter en el archivo para el puntero del código, pero que no estoy seguro de lo que es.
Me falta conocimiento de mi puntero, que es el objetivo de este ejercicio. El intérprete funciona bien, todos utilizan punteros, solo estoy teniendo problemas para leer archivos.
(Voy a implementar solo lectura "+ -> < [].," En el archivo más tarde, aunque si alguien tiene una buena manera de hacerlo, sería genial si me lo hiciera saber !)
Gracias de antemano
¿Cuál es la manera más fácil de contar el número de caracteres en un archivo para que pueda establecer el "1000" a eso? Además, no estoy exactamente seguro de lo que quiere decir con el número 2, entiendo que lo estoy haciendo mal de esa manera, pero ¿cómo lo enmendaría? –
@pwnmonkey: Lo que quiero decir es que está devolviendo 'código' mientras apunta al * final * del archivo, no mientras apunta al comienzo. – dreamlax
¡Oh OK, lo has editado, gracias! –