¿Hay una mejor manera de determinar la longitud de un std :: istream que lo siguiente:¿Mejor forma de determinar la longitud de un std :: istream?
std::istream* pcStream = GetSomeStream();
pcStream->seekg(0, ios::end);
unsigned int uiLength = pcStream->tellg();
Apenas se parece realmente un desperdicio tener que buscar hasta el final de la corriente y luego buscar nuevo a la original posición, especialmente si la transmisión puede ser a un archivo en algunos medios lentos como un CD o DVD.
¿Por qué necesita la longitud? – sbi
Una API que estoy usando requiere el tamaño de los datos que estoy pasando. Utiliza un búfer de caracteres sin formato y continúa procesándolo hasta que llega al final del búfer. – FlintZA
Puede usar 'stat()' en el archivo. Sin embargo, no es más rápido que buscar al final y buscar al principio antes de leer los contenidos ... así es como se implementan los descriptores de archivos. Por supuesto, 'stat()' no es C++ y requiere un nombre de archivo ... –