c++ - resueltos - Escribir contenidos de cadenas de caracteres en ofstream
imprimir cadena de caracteres en c (3)
Puede hacer esto, que no necesita crear la cadena. Hace que la secuencia de salida lea los contenidos de la secuencia en el lado derecho (utilizable con cualquier transmisión).
outFile << ss.rdbuf();
Actualmente estoy usando std::ofstream
siguiente manera:
std::ofstream outFile;
outFile.open(output_file);
Luego intento pasar un objeto std::stringstream
a outFile
siguiente manera:
GetHolesResults(..., std::ofstream &outFile){
float x = 1234;
std::stringstream ss;
ss << x << std::endl;
outFile << ss;
}
Ahora mi outFile
no contiene nada más que basura: "0012E708" repitió todo.
En GetHolesResults
puedo escribir
outFile << "Foo" << std:endl;
y saldrá correctamente en outFile
.
¿Alguna sugerencia sobre lo que estoy haciendo mal?
Al pasar una cadena de caracteres rdbuf a una secuencia, las líneas nuevas no se traducen. El texto de entrada puede contener /n
por lo que encontrar reemplazar no funcionará. El código anterior escribió en un flujo de datos y al cambiarlo a un flujo de cadena pierde la traducción endl.
Si está usando std::ostringstream
y se pregunta por qué no se escribe nada con ss.rdbuf()
entonces use la función .str()
.
outFile << oStream.str();