Cpp crear cadena sin inicialización.
Quiero leer el contenido de un archivo en una cadena.
string contents(size, '\0'); -> size fue determinado anteriormente usando file.seekg y file.tellg.
file.read((char*) contents.data(), size);
Ahora, sé que el contenido de la cadena será sobrescrito en file.read, por lo que no es necesario inicializar la cadena con caracteres nulos.
¿Hay alguna forma de hacerlo?
davy.ai
Sí, existe una forma de hacerlo. En lugar de utilizar el constructor de la clase de cadenas para inicializar la cadena con caracteres nulos, puedes utilizar el algoritmo
std::fill
para llenar la cadena con caracteres nulos antes de leer el contenido del archivo en la cadena.Aquí tienes un ejemplo de cómo puedes usar
std::fill
:En este ejemplo,
std::fill
se utiliza para llenar toda la cadenacontents
con caracteres nulos antes de leer el contenido del archivo en la cadena. Esto asegura que la cadena se inicialice correctamente con caracteres nulos y que no hayan caracteres residuales de operaciones anteriores.