Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    105

    [C++]Leggere riga per riga con variabili...

    Salve a tutti...
    Sto lavorando in una ribrica...(forse qualcuno ha già visto il mio post precedente)...
    ho un problema, come da titolo, nella lettura del file.
    Mi spiego meglio: memorizzo tutti i contatti in un file .txt, nel seguente metodo:

    codice:
     Nome Cognome Numero
     Nome Cognome Numero
     Nome Cognome Numero
    Non so se ho reso l'idea...il mio problema sta nel leggere dal secondo contatto in
    poi...riesco a leggere il primo contatto e a memorizzare le variabili Nome, Cognome e Numero...
    Ecco la parte del codice interessata...così com'è legge solo la prima riga;
    codice:
    ifstream aprifile;
         aprifile.open("rubrica.jkl", ios::in);
         system("CLS");
         int c;
         while(!aprifile.eof()){        
    
         while(aprifile >> c >> num_cont >> nomex >> cognomex >> telefonox ){
    if (c == 1){
                  fstream testo("C:\\percorso\\testo.txt",ios::in);
            
               cout <<  "Contatto ("<<num_cont<<"):\n"
                        "-----------------------------------\n"
                        "Nome:          " << nomex << "\n"
                        "Cognome:       " << cognomex << "\n"
                        "Numero Casa:   " << telefonox << "\n"
                        "-----------------------------------\n";
    
     aprifile.close();
    }}}
    Spero possiate aiutarmi...
    Grazie Anticipatamente

    Saluti Satore11

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [C++]Leggere riga per riga con variabili...

    Io farei così:
    codice:
        ifstream aprifile;
         aprifile.open("rubrica.jkl");
         int c; 
         std::string line;
         while(getline(aprifile,line)) {
              istringstream iss;
              iss.str(line);
              iss >> c >> num_cont >> nomex >> cognomex >> telefonox;
              cout "variabili varie";
         }
    Così hai la certezza di leggere tutto il file e deleghi allo stringstream il compito di estrarre i campi che ti servono.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    105
    Scusami tanto ti dispiacerebbe commentare queste istruzioni che hai usato?
    Non capisco:
    codice:
    std::string line;
    ...
    istringstream iss;
    ...
    iss.str(line);
    Grazie Anticipatamente

    Saluti Satore11

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Originariamente inviato da Satore11
    Scusami tanto ti dispiacerebbe commentare queste istruzioni che hai usato?
    Non capisco:
    codice:
    std::string line;  <- questa è una stringa del C++ per usarla devi fare #include <string>
    ...
    istringstream iss; <- questo è uno stream di caratteri specializzato per l'estrazione di caratteri. Per usarlo occore includere #include <sstream>
    ...
    iss.str(line); <- qui faccio gestire la linea letta allo stream di caratteri.
    Grazie Anticipatamente
    Saluti Satore11
    In parole povere faccio leggere la stringa line ( \n compreso) alla funzione getline che ritorna lo stream (in questo caso il file). La condizione del while diventa false se lo stream finisce o non è più valido.
    Nel while creo lo stream di caratteri, lo setto e lo uso con gli estrattori base dell'istream.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    105
    E allora non riesco a capire perchè mi segnala questo errore...
    codice:
    17 C:\Documents and Settings\salvo\Documenti\DevProject\Rubrica\visualizza.cpp
    `ifstringstream' undeclared (first use this function)
    Scusami tanto ma...perchè da errore?

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    105
    No ho sbagliato è questo l'errore che mi da:
    codice:
    17 C:\Documents and Settings\salvo\Documenti\DevProject\Rubrica\visualizza.cpp 
    aggregate `std::istringstream alo' has incomplete type and cannot be defined
    Scusatemi ancora...
    Saluti Satore11

  7. #7
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Per usarlo occore includere #include <sstream>

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    105
    Grazie mille funziona perfettamente...

    Saluti Satore11

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.