es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Creando una clase vector que no borra su contenido.

Soy un traductor de documentos de TI. Traduzco los siguientes al español:

Soy un principiante, por lo que quería preguntar, ¿podemos crear un vector/una matriz de objetos de clase que no elimine su contenido cuando cierro el programa?, es decir, quiero tener un registro de clientes, pero cada vez que reiniciamos el programa necesitamos volver a ingresar los detalles del cliente una y otra vez…
¿cómo podemos evitar que eso suceda?

“`cpp
#include <iostream>
#include <vector>

using namespace std;

class customer {
public:
int balance;
string name;
int password;
};

int main() {
vector<customer> cus;

<pre><code>…

if (choice == 1) {
cout << cus[i].balance;
}
return 0;
</code></pre>

}
“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para evitar la pérdida de datos del cliente, deberá guardar los datos en un archivo para poder cargarlos de nuevo en el programa cuando se reinicie.

    Una forma de hacer esto sería crear un método en su clase de cliente que guarde los datos del cliente en un archivo en un formato específico que se pueda leer de nuevo en el programa.

    Por ejemplo:

    “`c++
    #include
    #include
    #include

    using namespace std;

    class cliente{
    public:
    int saldo;
    string nombre;
    int contraseña;

    void guardarEnArchivo(string nombreArchivo){
        ofstream archivo;
        archivo.open(nombreArchivo);
        archivo << saldo << "," << nombre << "," << contraseña << endl;
        archivo.close();
    }
    

    };

    int main(){
    vector clientes;

    // ......
    
    // Guardar todos los datos del cliente en un archivo en el disco
    for(int i=0; i<clientes.size(); i++){="" clientes[i].guardarenarchivo("cliente_"+to_string(i)+".txt");="" }="" ......="" return="" 0;="" }="" ```="" este="" código="" guarda="" los="" datos="" de="" cada="" cliente="" en="" un="" archivo="" separado="" en="" el="" disco.="" puede="" modificar="" la="" función="" guardarenarchivo="" para="" cambiar="" el="" formato="" de="" los="" datos="" guardados="" en="" el="" archivo,="" según="" sus="" necesidades.="" después,="" cuando="" vuelva="" a="" iniciar="" el="" programa,="" puede="" leer="" cada="" archivo="" y="" crear="" objetos="" de="" cliente="" para="" cada="" cliente="" en="" los="" datos="" guardados.="" ```c++=""></clientes.size();><cliente> clientes;
    

    // Leer todos los datos de cliente guardados del disco
    for(int i=0; i<numclientes; i++){=”” string=”” nombrearchivo=”cliente_” +to_string(i)+”.txt”;=”” ifstream=”” archivo;=”” archivo.open(nombrearchivo);=”” if(archivo){=”” string=”” linea;=”” getline(archivo,=”” linea);=””></numclientes;> tokens;
    istringstream iss(linea);
    string token;
    while(getline(iss, token, ‘,’)){
    tokens.push_back(token);
    }

        cliente c;
        c.saldo = stoi(tokens[0]);
        c.nombre = tokens[1];
        c.contraseña = stoi(tokens[2]);
    
        clientes.push_back(c);
    }
    archivo.close();
    

    }
    “`

    Este código lee los datos del cliente de cada archivo previamente guardado en el disco y crea un objeto de cliente para cada cliente guardado. Nuevamente, puede modificar el código para adaptarlo a sus necesidades específicas.

    Al implementar un método como este, puede evitar la pérdida de datos del cliente cuando se reinicie el programa.

Comments are closed.