2009-06-29 12 views
2

mon problème est que fprintf imprime seulement une partie de la sortie attendue dans le fichier. Quand j'utilise printf, la sortie est correctement imprimée sur la fenêtre de sortie, montrant que la boucle est correcte mais quand je l'utilise avec fprintf, la sortie complète n'est pas imprimée. Seule la partie initiale est imprimée.comment écrire dans un fichier texte par programme C

Veuillez nous aviser de ce qui pourrait éventuellement être le problème ???

merci à l'avance ...

+0

poster un code qui illustre le problème –

Répondre

0

vous essayez d'utiliser fflush()

+0

Je downvoted cela parce que la réponse n'a tout simplement pas de sens, probablement parce que l'anglais n'est pas votre langue maternelle. Vous avez dit "vous essayez d'utiliser fflush" mais il n'a pas essayé d'utiliser fflush. Peut-être vouliez-vous dire qu'il faudrait essayer de l'utiliser? Si c'est le cas, cela a déjà été suggéré plusieurs fois, donc il ne sert à rien de le répéter. –

3

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.

Questions connexes