Maison >développement back-end >C++ >Comment lire le contenu d'un fichier sous forme de tableau de caractères en C en utilisant ifstream::read() et istreambuf_iterator ?
Comment lire le contenu d'un fichier sous forme de tableau de caractères en C
Arrière-plan
Cette question demande comment remplir un tampon de tableau de caractères avec les octets d'un fichier nommé inputFile. L'utilisateur a rencontré des difficultés avec d'autres approches suggérées qui utilisent getline() au lieu de ifstream::read().
Solution
Il existe quelques approches pour résoudre ce problème. tâche :
Utilisation d'ifstream::read()
Cette méthode implique :
Exemple de code :
<code class="cpp">// Open file in binary mode std::ifstream infile("C:\MyFile.csv", std::ios_base::binary); // Get file length infile.seekg(0, std::ios::end); size_t length = infile.tellg(); infile.seekg(0, std::ios::beg); // Read file infile.read(buffer, length);</code>
Utiliser istreambuf_iterator
Cette approche est plus moderne et utilise des itérateurs pour lire le fichier :
Exemple de code :
<code class="cpp">// Create iterators std::istreambuf_iterator<char> begin(infile); std::istreambuf_iterator<char> end; // Create vector std::vector<char> contents(begin, end); // Copy vector to array std::copy(contents.begin(), contents.end(), buffer);</code>
Considérations
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!