Oppure

Loading
20/05/17 19:54
Gioviok
Salve a tutti
E' da un po che ho un problema che mi impedisce di andare avanti con un mio progetto: ho una classe, il cui costruttore richiede una variabile string e nel main creo l'oggetto subito dopo avere fatto "cin>>" sulla stringa da usare come parametro: ecco il codice della classe(uso il namespace sta per tutto il codice)
class player {
    string ID;
    string filename;
    string name=0;
    ifstream file;
    
public:player(string IID=""){
    if(IID==""){
        ID=generate_unique_ID(15);
        filename=ID+".txt";
        cout<<"Creato un giocatore con ID unico: "<<ID<<endl;
    }
    else{
        ID=IID;
        filename=ID+".txt";
        cout<<"Login di un giocatore con ID unico: "<<ID<<endl;
    }
    }
    bool fileopen(){
        file.open(filename);
        string current;
        getline(file,current);
        if (current==ID){
            return true;
        }
        else{
            file.close();
            return false;
        }
        return false;
    }
    string getID(){
        return ID;
    }
    string generate_unique_ID( size_t length )
    {
        auto randchar = []() -> char
        {
            const char charset[] =
            "0123456789"
            "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            "abcdefghijklmnopqrstuvwxyz";
            const size_t max_index = (sizeof(charset) - 1);
            return charset[ rand() % max_index ];
        };
        string str(length,0);
        generate_n( str.begin(), length, randchar );
        return str;
    }
};

e poi nel main
int main(int argc, const char * argv[]) {
    string login;
    cout<<"Inserisci il tuo ID"<<endl;
    cin>>login;
    player me(login);
return 0;
}

Siccome uso Xcode ho provato a usare l'utility Zombie, ma non mi da nessun aiuto...
Inoltre il compilatore non mi da errori.
Dov'è l'errore? Premetto che ho incluso tutte le librerie necessarie ( iostream,string,time.h,iomanip,fstream )
Grazie in anticipo!:)
Ultima modifica effettuata da Gioviok 20/05/17 19:55
aaa
20/05/17 21:54
lumo
    string name=0; 


Sicuro che sia quello che vuoi?
Comunque non vedo errori evidenti che lascino pensare a un errore di accesso di memoria, sarebbe molto utile se riuscissi a usare il debugger per vedere se veramente l'errore avviene al momento della creazione dell'oggetto e magari in che punto del costruttore.

Ah, non usi srand.
aaa
23/05/17 20:02
Gioviok
Provato a cambiare quello che hai detto tu ma niente. Il fatto che non uso stand è che lo ho dimenticato:asd::asd:... Ho usato tutto ciò che Xcode mi offre per il debug ma l'errore appare quando creo l'oggetto... Grazie per l'aiuto:k:
aaa