Pagina 1 di 1

[C++] Problema string

Inviato: dom 21 set 2014, 21:30
da Emanuel

Codice: Seleziona tutto

void ricaut()
{
    string aut;
    
    cout<<"Inserisci l'autore del libro da cercare"<<endl;
    cin>>aut;
    
    ifstream f;
    ifstream tmp; //imput
    string s, temp;
    
    f.open("libri.txt", ifstream::in); //apertura file in lettura
    while(f.good()) //fino a quando c'è qualcosa da leggere ..
    {
        //legge tutta la riga dal file e la mette nella variabile s
        getline(f, s);
        s=s+".txt";
        tmp.open(s.c_str(), ifstream::in);
        getline(tmp, temp);
        getline(tmp, temp);
        temp=del(temp, 8);
        int d;
        d=aut.length();
        temp.resize(d);
        cout<<temp<<endl<<aut<<endl;
        if(temp==aut)
        {
            system("cls");
            tmp.close();
            tmp.open(s.c_str(), ifstream::in);
            while(tmp.good()) //fino a quando c'è qualcosa da leggere ..
            {
                //legge tutta la riga dal file e la mette nella variabile s
                getline(tmp, temp);
                cout<<temp<<endl;
            }
            tmp.close();
        }
        else
        {
            tmp.close();
        }
        system("PAUSE");
    }
    f.close();
}
Questa è una funzione di un programma per la gestione di una libreria e dovrebbe cercare l'autore nel file preso in considerazione dall'elenco dei libri e, se trova l'autore, apre il file del libro e ne visualizza i contenuti.
Problema: una volta finita questa operazione il prompt mi dice che c'è un problema causato dalla funzione length e resize ma non ne capisco il motivo; aiutatemi per favore...

Re: [C++] Problema string

Inviato: mar 23 set 2014, 0:05
da robbybby
se non ci dici qual è il messaggio di errore...

Re: [C++] Problema string

Inviato: mar 23 set 2014, 15:46
da Emanuel
robbybby ha scritto:se non ci dici qual è il messaggio di errore...
Hai ragione scusa, ecco l'immagine

Re: [C++] Problema string

Inviato: mar 23 set 2014, 16:49
da fgcl2k
Non è più semplice usare gdb?

A parte questo, in mancanza di ulteriori indicazioni io guarderei:

Codice: Seleziona tutto

temp=del(temp, 8);