Y at-il une meilleure façon de déterminer la longueur d'un std :: istream que ce qui suit:Meilleur moyen de déterminer la longueur d'un std :: istream?
std::istream* pcStream = GetSomeStream();
pcStream->seekg(0, ios::end);
unsigned int uiLength = pcStream->tellg();
Il semble vraiment inutile d'avoir à chercher à la fin du cours d'eau et ensuite chercher à l'original position, en particulier si le flux peut être dans un fichier sur un support lent comme un CD ou un DVD.
Pourquoi avez-vous besoin de la longueur? – sbi
Une API que j'utilise nécessite la taille des données que je lui transmets. Il utilise un tampon de caractères brut et continue de le traiter jusqu'à ce qu'il atteigne la fin du tampon. – FlintZA
Vous pouvez utiliser 'stat()' sur le fichier. Cependant, ce n'est pas plus rapide que de chercher à la fin et de chercher au début avant de lire le contenu ... c'est ainsi que les descripteurs de fichiers sont implémentés. Bien sûr, 'stat()' n'est pas en C++ et il faut un nom de fichier ... –