[C++] Problema string

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Emanuel
Linux 0.x
Linux 0.x
Messaggi: 2
Iscritto il: dom 21 set 2014, 21:22
Nome Cognome: Emanuel Pinto

[C++] Problema string

Messaggio 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...

Avatar utente
robbybby
Linux 4.x
Linux 4.x
Messaggi: 1223
Iscritto il: sab 16 dic 2006, 10:48
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5
Località: Fra Trantor e Terminus

Re: [C++] Problema string

Messaggio da robbybby »

se non ci dici qual è il messaggio di errore...

Emanuel
Linux 0.x
Linux 0.x
Messaggi: 2
Iscritto il: dom 21 set 2014, 21:22
Nome Cognome: Emanuel Pinto

Re: [C++] Problema string

Messaggio da Emanuel »

robbybby ha scritto:se non ci dici qual è il messaggio di errore...
Hai ragione scusa, ecco l'immagine
Allegati
err.jpg
err.jpg (17.25 KiB) Visto 3001 volte

Avatar utente
fgcl2k
Linux 1.x
Linux 1.x
Messaggi: 137
Iscritto il: gio 29 ott 2009, 10:14
Nome Cognome: Federico
Slackware: 14.1 (64bit)
Kernel: 3.10.17
Desktop: KDE 4.13.3

Re: [C++] Problema string

Messaggio da fgcl2k »

Non è più semplice usare gdb?

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

Codice: Seleziona tutto

temp=del(temp, 8);

Rispondi