Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    35

    [c++]accedere a una stringa memorizzata sul file txt

    Ciao ragazzi,da poco ho ripreso a programmare e ho deciso di farlo scrivendo un software utile per il mio lavoro, ho creato quindi una lista in C++ che mi stampa le caratteristiche di un oggetto in un file txt, vorrei che sempre da un file txt mi prendesse il nome dell'oggetto.

    Per fare queste due cose ho implementato le librerie string e fstream, ma fstream ho notato che non mi permette di prendere una parola nella lista a mio piacimento leggendo il file riga per riga, vorrei invece che lo facesse.

    Ho pensato di memorizzare il contenuto del file in un array, ma questo avrebbe bisogno di una dichiarazione della dimensione prima e quindi mi sembra inutile.

    Il codice che ho scritto è questo, abbiate pazienza se c'è qualche errore, ma non sono praticissimo, mi sto applicando.
    codice:
    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    /* ***************************************************
    struttura dinamica dove memorizzare il risultato
    */
    struct modello {
        string nome;
        double x;
        double y;
        int amount;
        modello *next;
    };
    
    modello *il=NULL;
    
    void inserisciintesta(modello *&il,modello *nuovo) {
        nuovo->next=il;
        il=nuovo;
    }
    
    void inserisciincoda(modello *&il,modello *nuovo) {
        modello *ultimo=NULL;
        if (il==NULL) {
            inserisciintesta(il,nuovo);
        }
        else {
            ultimo=il;
            while (ultimo->next!=NULL) {
    
                ultimo=ultimo->next;
                ultimo->next=nuovo;
            }
        }
    }
    
    /* ****************************************************************
    apertura file contenente i nomi dei modelli */
    
    int lettura_file() {
        ifstream f("names.txt"); //nome del file da aprire, si può mettere anche il percorso (es C:\\file.txt)
        string s;
    
        if(!f) {
            cout<<"Il file non esiste!";
            return -1;
        }
    
        int i=1;
        while(f.good()) //fino a quando c'è qualcosa da leggere ..
        {
            getline(f, s); //legge tutta la riga dal file e la mette nella variabile s
            cout<<i<<"\t"<<s<<endl;
            i++;
        }
    
        cout<< 2;
        return 0;
    }
    
    int main () {
        int b;
        modello *nuovo=NULL;
    
        string namefile;
        string formato=".txt";
    
        cout<<"come nomino il file?"<<endl;
        cin>>namefile;
        namefile+=formato;
    
        ofstream SaveFile(namefile.c_str());
    
        cout<<"inserisci numero di progetti d'aggiungere"<<endl;
        cin>>b;
    
        for (int i=0; i<b; i++) {
            nuovo=new modello;
            cout<<"nome"<<endl;
            cout<<lettura_file();
    
            cin>>nuovo->nome;
            SaveFile<<"Modello:\t"<<nuovo->nome<<endl;
            cout<<"misura lato x"<<endl;
    
            cin>>nuovo->x;
            SaveFile<<"X="<<nuovo->x<<endl;
    
            cout<<"misura lato y"<<endl;
    
            cin>>nuovo->y;
            SaveFile<<"Y="<<nuovo->y<<endl;
    
            cout<<"quantità"<<endl;
    
            cin>>nuovo->amount;
            SaveFile<<"quantità="<<nuovo->amount<<endl;
    
            nuovo->next=NULL;
    
            inserisciincoda(il,nuovo);
    
            cout<<endl;
        }
        return 0;
    }
    Ultima modifica di MItaly; 12-10-2016 a 09:30 Motivo: Sistemato codice

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    La domanda qual è?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ho sistemato il post - e anche l'indentazione, che era abbastanza inguardabile . Dovresti però specificare qual'è esattamente la richiesta...

    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    35
    Quote Originariamente inviata da oregon Visualizza il messaggio
    La domanda qual è?
    Ringrazio Mitaly, ma il forum non mi ha permesso la modifica con Chrome su debian.
    La domanda è che dovrei selezionare il nome da un da un file.txt
    Praticamente in questi file ho:
    Gianni
    Pippo
    Baudo
    Quindi vorrei che in modello*nome memorizzi Pippo, oppure Baudo a scelta mia. Non so mi sono spiegato?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    "Selezionasse" in che senso?

    Vuoi cercare un nome e leggerlo? Apri il file, lo leggi sequenzialmente confrontando con una if finché non arrivi alla fine o non trovi il nome.

    Cosa non ti è chiaro?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.