Netbeans - Problema al buscar un dato en un archivo

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 9 puestos en Netbeans (en relación al último mes)
Gráfica de Netbeans

Problema al buscar un dato en un archivo

Publicado por Juan (1 intervención) el 18/11/2018 20:03:26
Hola, quisiera saber como puedo realizar una busqueda dentro de un archivo, tengo lo siguiente pero no me funciona, el codigo esta incompleto, el problema es en el caso D, agradezco su ayuda.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <iostream>
#include <fstream>
#include <string> 
#include <stdio.h>
#include <string.h>
 
struct datos_libros {
    char codigo[10];
    char nombre[30];
    char autor[30];
    char  genero[30];
    int estado;
} libro;
 
using namespace std;
void ingreso_libro();
void genero();
void busqueda ();
void eliminar ();
 
/*
 * 
 */
 
int main() {
    char menu, seguir;
    do {
        system("clear");
 
        cout << "\n\t\t\t***B I B L I O T E C A  P E R S O N A L***\n";
        cout << "\n\t\t\tM E N U\n";
        cout << "\n\tA. INGRESO DEL LIBRO \n";
        cout << "\tB. INGRESO DE TESIS DE GRADO \n";
        cout << "\tC. USUARIO \n";
        cout << "\tD. BUSQUEDA \n";
        cout << "\tE. ELIMINAR \n";
        cout << "\tF. LIBROS \n";
        cout << "\tG. TESIS DE GRADO \n";
        cout << "\tH. SALIR \n";
        cout << "\n\tOPCION [A-H]: ";
        cin>>menu;
        menu = toupper(menu);
 
        switch (menu) {
            case 'A': ingreso_libro();
                break;
 
            case 'D': busqueda ();
            break;
            case 'E':
            break;
 
 
 
        }
        cout << "\n\n\t¿Desea volver al menu? [S/N]: ";
        cin >>seguir;
    } while (toupper(seguir) == 'S');
 
 
    return 0;
}
 
void ingreso_libro() {
    system("clear");
    ofstream b_libros;
    b_libros.open("Libros_Biblioteca3.txt", ios::out | ios::app);
    if (b_libros.fail()) {
        cout << "Ocurrio un error al abrir el archivo";
        cin.get();
    } else {
        char continuar;
        do {
            system("cmd /c cls");
            fflush(stdin);
            cin.ignore();
 
            cout << "\n\n\tIngrese los datos del libro" << endl;
            cout << "\n\tCodigo:    ";
            cin.getline(libro.codigo, 10, '\n');
            cout << "\tTitulo del libro:  ";
            cin.getline(libro.nombre, 30, '\n');
            cout << "\tAutor:    ";
            cin.getline(libro.autor, 30, '\n');
            cout<<"\tGenero: ";
 cin.getline(libro.genero, 30, '\n');
            cout << "\tEstado(Disponible=0/Prestado=1):    ";
            cin >> libro.estado;
 
            b_libros <<"\n"<< libro.codigo << "\t\t" << libro.nombre << "\t\t\t" << libro.autor << "\t\t" << libro.genero << "\t\t\t" << libro.estado << "\r\r\n";
 
            cout << "\n\n\t¿Desea ingresar otro libro a la biblioteca? [S/N]: ";
            cin>>continuar;
        } while (toupper(continuar) == 'S');
    }
    b_libros.close();
    cin.get();
}
 
 
 
 
 
void busqueda(){
    char nombre_bus[30];
    bool encontrado=false;
    ifstream lectura;//Creamos la variable de tipo lectura
    lectura.open("Libros_Biblioteca3.txt",ios::out|ios::in);
    if(lectura.is_open()){
        cin.ignore();
        cout<<"Ingresa el autor que deseas Buscar: ";
        cin.getline(nombre_bus, 30, '\n');
        lectura>>libro.nombre;//lectura adelantada
        lectura>>libro.autor;
        encontrado=false;
        while(!lectura.eof()){
            lectura>>libro.codigo>>libro.autor>>libro.genero>>libro.estado;
            strupr(nombre_bus);
            strupr(libro.autor);
            if(strcmp(nombre_bus,libro.autor)==0){
                cout<<"______________________________"<<endl;
                cout<<"Codigo: "<<libro.codigo<<endl;
                cout<<"Nombre: "<<libro.nombre<<endl;
                cout<<"Autor: "<<libro.autor<<endl;
                cout<<"Genero: "<<libro.genero<<endl;
                cout<<"Estado: "<<libro.estado<<endl;
                cout<<"______________________________"<<endl;
                encontrado=true;
            }
            lectura>>libro.nombre;
        }
        if(encontrado==false){
            cout<<"No hay registros con el autor ingresado "<<nombre_bus<<endl;
        }
    }else{
        cout<<"No se pudoAbrir el Archivo, aun no ha sido Creado"<<endl;
    }
    //cerrando el archivo
    lectura.close();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder