Funciona con fgets, pero me da rabia que crashee con fscanf cuando debería funcionar...
Por cierto, es muy extraño: usando el siguiente fragmento de código se leen más de 64 caracteres, mientras que en los otros ifs que usan la misma sintáxis no lee más de 64 (que es lo esperable):
fscanf(file
, "%s[^64]", command
);
¿POR QUÉ FUNCIONA SOLO A VECES XDD? Supongo que será un bug, pero es demasiado extraño...
Voy a dar por cerrado el tema, a parte de porque lo solucioné con fgets, dudo que vaya a encontrar el error que produce la función fscanf... Muchas gracias a todos por compartir su sabiduría y tiempo
La respuesta al problema... por fin la he hallado... Resulta que por alguna razón fscanf está ignorando el límite de caracteres. Lo he demostrado con el siguiente código:
#include <stdio.h>
int main() {
char cadena[16];
fscanf(stdin
, "%s[^16]", cadena
);
return 0;
}
Este programa crashea si introduces una cadena de más de 16 caracteres...
Haré otra pregunta en el foro para saber por qué ignora el límite de caracteres. Muchas gracias a todos