Maison > développement back-end > C++ > le corps du texte

Comment lire tous les octets d'un fichier dans un tableau de caractères en C ?

Mary-Kate Olsen
Libérer: 2024-11-01 23:09:31
original
839 Les gens l'ont consulté

How to Read All File Bytes into a Character Array in C  ?

Récupération de tous les octets d'un fichier dans un tableau de caractères en C

Cette question cherche à comprendre comment lire le contenu d'un fichier dans un caractère tableau, contournant les limitations de getline().

Solution :

Au lieu d'utiliser getline(), envisagez d'implémenter ifstream::read() pour lire un fichier comme un flux d'octets. Les étapes suivantes décrivent le processus :

  1. Ouverture du fichier :
<code class="cpp">std::ifstream infile("C:\MyFile.csv"); // consider std::ios_base::binary for binary reads</code>
Copier après la connexion
  1. Détermination de la longueur du fichier :
<code class="cpp">infile.seekg(0, std::ios::end);
size_t length = infile.tellg();
infile.seekg(0, std::ios::beg);</code>
Copier après la connexion
  1. Prévention du débordement de tampon :
<code class="cpp">if (length > sizeof(buffer)) {
    length = sizeof(buffer);
}</code>
Copier après la connexion
  1. Lecture du fichier :
<code class="cpp">infile.read(buffer, length);</code>
Copier après la connexion

Remarques supplémentaires :

  • L'utilisation de seekg() et tellg() pour déterminer la taille du fichier n'est pas garantie d'être exacte, mais fonctionne généralement.
  • L'ouverture du fichier en mode non binaire peut entraîner des traductions de caractères qui affectent la taille du tampon résultant.
  • Pour la lecture de fichiers en une seule fois, la réponse de Rémy Lebeau recommande d'utiliser std :: vector et std::istreambuf_iterator pour une efficacité améliorée.
  • En cas de lectures en mémoire tampon, pensez à utiliser gcount() pour suivre le nombre réel de caractères lus.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!