Maison >développement back-end >C++ >Écriture de fichiers binaires ou texte : quelles sont les principales différences dans la gestion des données ?

Écriture de fichiers binaires ou texte : quelles sont les principales différences dans la gestion des données ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-25 14:14:09893parcourir

Binary vs. Text File Writing: What are the Key Differences in Data Handling?

Comprendre les différences entre l'écriture de fichiers en mode binaire et texte

Lors de l'écriture de données dans un fichier, les programmeurs peuvent choisir entre le mode binaire et le mode texte . Le mode binaire permet le transfert direct des données sans aucune modification, tandis que le mode texte intègre certaines traductions spécifiques à MS Visual C.

Considérez l'extrait de code suivant qui écrit des données dans un fichier :

unsigned char buffer[256];
for (int i = 0; i < 256; i++) buffer[i] = i;
int size = 1;
int count = 256;

En mode binaire, les données sont écrites directement dans le fichier :

FILE *fp_binary = fopen(filename, "wb");
fwrite(buffer, size, count, fp_binary);

En mode texte cependant, les données subissent certaines traductions avant d'être écrit :

FILE *fp_text = fopen(filename, "wt");
fwrite(buffer, size, count, fp_text);

Plus précisément, sous Windows, les traductions suivantes se produisent lors de l'ouverture d'un fichier en mode texte :

  • Les sauts de ligne ('n') sont convertis en 'rn' séquences en sortie.
  • Les séquences de retour chariot/saut de ligne sont converties en sauts de ligne en entrée.
  • En mode ajout, la fin du fichier est vérifiée pour un caractère Ctrl Z (« x1A »). S'il est présent, il est supprimé et le caractère est traité comme la fin du fichier. Il n'est cependant pas annexé au dossier.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn