Páginas

lunes, 30 de enero de 2012

C++: Ejemplo de guardar texto en un archivo y leerlo.


Manejo de un archivo tipo TXT en c++:
Guardar y Abrir archivo


Este es un simple ejemplo de como trabajar con un fichero de texto en cpp:
Crea un archivo tipo TXT, y le añade unas cadenas de caracteres,y luego las lee.
Para mostrar lo que he leido, primero en el bucle de lectura lo va escribiendo y ademas va definiendo un array. Este array se mostrará luego otra vez por pantalla.



#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
int main() {
char cadena[3128];
char linea[50][3000];
string texto;
string lineacadena;
int a=0;
int b=0;
// Crea un fichero de salida
cout <<"-------------------------------------\n";
cout <<"Escribiendo y leyendo un fichero\n";
cout <<"-------------------------------------\n";
ofstream fs("nombre.txt");
char* mensaje="hola esto es un mensaje\0";
char* mensaje2="hola 2\0";
char* mensaje3="un mensaje3\0";
cout << mensaje<<"\n";
cout <<mensaje2<<"\n";
cout <<mensaje3<<"\n";
// Enviamos una cadena al fichero de salida:
fs << mensaje << endl;
fs << mensaje2 << endl;
fs << mensaje3 << endl;
// Cerrar el fichero,
// para luego poder abrirlo para lectura:
fs.close();
// Abre un fichero de entrada
ifstream fe("nombre.txt");
// Leeremos mediante getline, si lo hiciéramos
// mediante el operador << sólo leeríamos
// parte de la cadena:
cout <<"-------------------------------------\n";
cout <<"\nContenido del fichero:\n";
cout <<"-------------------------------------\n";
a=-1;
while (!fe.eof()){
fe.getline(cadena,3000);
a++;
string lineacadena (cadena); // añadido: convierto array de char a cadena
texto +=lineacadena + '\n';  // añado a la cadena texto.
strcat(linea[a],cadena); //añadido trabajando con cadenas 
cout << cadena << endl; // añadido: escribo.
}
cout <<"-------------------------------------\n";
cout <<"Contenido del fichero, en un array guardado\n";
cout <<"-------------------------------------\n";
for(b=0;b<=a;b++){
cout << linea[b];
cout << "\n";
}
cout <<"----------------------------------------\n";
cout <<"imprimo una cadena\n";
cout <<"----------------------------------------\n";
cout << texto;
//system ("PAUSE");
//EXIT_SUCCESS;
return 0;
}

Nota:
31 de enero de 2012
He añadido también como trabajar con cadenas