Le problème est probable que vous ne dites pas C à écrire réellement les données sur le disque. Cela se produit généralement automatiquement lorsque vous fermez un fichier et peut se produire automatiquement à d'autres moments (par exemple lorsque les tampons internes se remplissent).
Il semble que vous écrivez juste quelques octets, puis que vous vérifiez le fichier pour voir ce qui s'est passé. Si c'est le cas, votre programme peut contenir ces octets dans un tampon interne avant d'écrire sur le disque. Il le fait pour améliorer les performances dans le cas général - vous ne voulez normalement pas d'accès au disque pour chaque instruction print.
Une solution, comme d'autres réponses le suggèrent, est d'appeler fflush. Cela va "vider" toutes les données mises en mémoire tampon sur le disque. Il existe d'autres solutions telles que désactiver la mise en mémoire tampon, mais appeler fflush est la meilleure première étape depuis que vous êtes novice en programmation. Pour plus d'informations, voici un lien vers un wiki book sur les E/S de fichiers avec C. Vous pouvez aller directement au section on fflush, bien que vous souhaitiez lire les paragraphes d'introduction pour en savoir un peu plus.
poster un code qui illustre le problème –