2011-11-02 3 views
2

Je me demande si lire un grand fichier texte ligne par ligne (par exemple, std :: getline ou fgets) peut être tamponné avec une taille de tampon de lecture prédéfinie, ou utiliser des fonctions spéciales d'octets? Je veux dire lire des fichiers très volumineux avec une optimisation du nombre d'opérations d'E/S (par exemple, lire 32 Mo à partir du disque dur à la fois). Bien sûr, je peux faire des lectures tamponnées à la main, mais je pensais que les flux de fichiers standards avaient cette possibilité.Lecture de fichier en tampon C++

+0

écrire une fonction personnalisée. Thats comment l'innovation vient :) – Kris

Répondre

4

Ni ligne par ligne ni fonctions octets spéciales. Au lieu de cela, ce qui suit devrait faire votre travail:

std::ifstream file("input.txt"); 
std::istream_iterator<char> begin(file), end; 

std::vector<char> buffer(begin, end); //reading the file is done here! 
//use buffer. it contains the content of the file! 

Et vous avez terminé, comme buffer contient le contenu du fichier.