256 è arbitrario e indica la dimensione del buffer. Forse eccessivo (magari bastava 64), ma in C è meglio sovradimensionare i buffer di input, pena errori come quello che avevi.
2) mai usato fscanf. Se faccio input da C (di solito uso C++) uso fgets e parserizzo i dati per i fatti miei.