Este es un ejemplo muy sencillo sobre el manejo de archivos en C++. Generalmente estos ejemplos son aburridos así que traté de hacerle algo intersante. Lo que vemos aquí es un programa que nos mostrará una frase “al azar” de la bonita canción What a wonderful world de Louis Armstrong. Ver vídeo:
What a wonderful world by Louis Armstrong
Bien, ¿Cómo lo haremos?, Simple. Primero tenemos que leer un archivo de texto en el que guardaremos la letra de esta canción. Para esto usaremos la clase fstream, estándar de C++. Luego leemos el archivo línea por línea y las vamos almacenamos en un array, que será una instancia de la clase vector. Por último mostraremos una línea al azar dentro de ese array, y esto lo haremos con la función rand.
Veamos el código. Está comentado para que se entienda mejor:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <vector>
using namespace std;
class Frases{
private:
fstream _archivo;
// array en el que guardaremos las frases del archivo
vector<string> _frases;
public:
// Constructor
Frases(){
// Se inicializa la función para obtener
// números aleatorios
srand(time(NULL));
}
// Método set_archivo
void set_archivo(string nombre_archivo){
// se abre el archivo
_archivo.open(nombre_archivo.c_str(), fstream::in);
string linea;
// leer el archivo línea a línea
while(getline(_archivo, linea)){
// guardar la línea actual en el array
_frases.push_back(linea);
}
}
// Método get_frase
string get_frase(){
// obtener un número aleatorio que sea menor al
// tamaño del array con frases.
int numero_aleatorio = rand() % _frases.size();
// devolver la frase ubicada en la posición aleatoria
return _frases[numero_aleatorio];
}
// Destructor
~Frases(){
// cerrar el archivo
_archivo.close();
}
};
int main()
{
// se declara una instancia de la clase
Frases frases;
// se establece el archivo de frases
frases.set_archivo("frases.txt");
// mostrar una frase aleatoria.
cout << frases.get_frase() << endl << endl;
return 0;
}
Ahora simplemente tenemos que crear un archivo en el mismo directorio donde compilamos el programa y lo nombramos "frases.txt". Dentro de este archivo pondremos la letra de la canción:
I see trees of green, red roses too I see them bloom for me and you And I think to myself, what a wonderful world I see skies of blue and clouds of white The bright blessed day, the dark sacred night And I think to myself, what a wonderful world The colours of the rainbow, so pretty in the sky Are also on the faces of people going by I see friends shakin’ hands, sayin’ “How do you do?” They’re really saying “I love you” I hear babies cryin’, I watch them grow They’ll learn much more than I’ll ever know And I think to myself, what a wonderful world Yes, I think to myself, what a wonderful world Oh yeah
Ahora cada vez que ejecutemos nuestro programa nos tirará una frase “al azar” de What a wonderful world. Es un ejemplo muy sencillo sobre el manejo de archivos en C++, y en base a esto pueden hacer aplicaciones más detalladas.
hehe, bonita programacion poetica n_n, a eso le llamo hacer un programa que alimenta el espiritu de otros :3
excelente ejemplo!