Question

comment puis-je aller sur une ligne spécifique d'écraser un fichier texte dans c ?. J'ai des valeurs de plusieurs variables qui doivent être écrites sur le fichier.

Était-ce utile?

La solution

Cela ne fonctionne que lorsque la nouvelle ligne a la même taille que l'ancien:

  • Ouvrez le fichier dans le mode a+
  • fseek() au début du fichier
  • Avant de lire la ligne suivante, utilisez ftell() de noter le début de la ligne
  • Lire la ligne
  • Si c'est la ligne que vous voulez, fseek() à nouveau avec le résultat de ftell() et utiliser fwrite() pour le remplacer.

Si la longueur de la ligne change, vous devez copier le fichier.

Autres conseils

Étant donné que les fichiers (du point de vue de la bibliothèque standard C) ne sont pas en ligne orientée, mais sont juste une séquence de caractères (ou octets en mode binaire), vous ne pouvez pas vous attendre à les modifier à la ligne de niveau facilement.

Comme Aaron décrit, vous pouvez remplacer des cours les caractères qui composent la ligne si votre remplacement est le nombre exact de même caractère.

Vous pouvez aussi (peut-être) insérer un remplacement plus court par rembourrage avec un espace à la fin (avant la fin de ligne). C'est bien sûr un peu grossier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top