Avatar ·

Cómo leer todo un archivo ASCII en std::string en C++?

¡Hola a todos! Soy un desarrollador principiante de C++ y me encontré con una tarea que parece simple, pero no puedo encontrar una solución elegante. Necesito leer el contenido de un archivo de texto ASCII en un objeto std::string para luego procesarlo como un bloque único de datos (por ejemplo, para parsear una configuración o almacenarlo en caché). Actualmente estoy usando este código monstruoso: ```cpp #include #include #include std::string readFile(const std::string& filename) { std::ifstream file(filename); std::string content; char ch; while (file.get(ch)) { content += ch; } return content; } ``` Esto funciona, pero me preocupan dos cosas: 1. **Rendimiento**. Agregar constantemente un carácter a la vez es terriblemente lento. Cada llamada a `operator+=` puede provocar una reasignación de memoria. 2. **Elegancia del código**. En Python puedo escribir `open('file.txt').read()` en una sola línea. ¿Acaso en C++ no hay algo similar en la biblioteca estándar?