Se trata de hacer un "buscador" que ordene información de un fichero.
con datos separados por ";"
ejemplo de fichero.txt fuente:
nombre1; apellido1; 30; trabajo1
nombre2; apellido2; 30; trabajo2
nombre3; apellido3; 25; trabajo1
y se trata de ordenar la información en dos nuevos documentos.
ejemplo año.txt:
25
nombre3; apellido3; trabajo1
30
nombre1; apellido1; trabajo1;
nombre2; apellido2; trabajo2;
ejemplo trabajo.txt:
trabajo1
nombre1; apellido1; 30
nombre3; apellido3; 25
trabajo2
nombre2; apellido2; 30
El código que de momento tengo es el siguiente (ni de casualidad es parte de la solución final)
codigo:
Código
Cualquier consejo, para como introducir la información a la estructura o si en vez de una estructura es mejor usar una matriz o vector, alguna cosa que me permita salir de este punto muerto se agradece. Al igual que en caso de olvidarme de alguna librería o el uso de alguna función.
#include <stdio.h> #include <stdlib.h> #include <iostream> #include <string> #include <fstream> using namespace std; struct st{ string nombre; string apellido; int año; int trabajo; }; int main () { st s[11]; ifstream fichero ("fichero.txt"); ofstream año ("año.txt",ios::app); ofstram trabajo ("trabajo.txt",ios::app); string linea; int cont=0; int pc; while(fichero.good()){ getline(fichero, linea); pc=linea.find(";"); s.nombre[cont]=linea.erase(0,pc); linea=linea.erase(0,pc+1); cont++; // no se como indicar que empiece a leer desde la siguiente linea al volver a pasar por el while la próxima vez (con todos) } cont=0; while(fichero.good()){ getline(fichero, linea); pc=linea.find(";"); s.apellido[cont]=linea.erase(0,pc); linea=linea.erase(0,pc+1); cont++; } cont=0; while(fichero.good()){ getline(fichero, linea); pc=linea.find(";"); s.año[cont]=linea.erase(0,pc); linea=linea.erase(0,pc+1); cont++; } cont=0; while(fichero.good()){ getline(fichero, linea); pc=linea.find(";"); s.trabajo[cont]=linea.erase(0,pc); linea=linea.erase(0,pc+1); cont++; } fichero.close();; año.close(); trabajo.close(); system ("PAUSE"); return 0; }
El ejercicio se trata de peliculas, si no he podido cambiar algun dato referente a titulo o director o algo lo menciono para no ocacionar ningun error a nadie. gracias
Mod: los códigos deben ir en etiquetas GeSHi