Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    c++ lettura dati da file

    Buona sera a tutti,
    avrei qualche dubbio su come leggere ed utilizzare i dati che estraggo da un file.
    Ad esempio se io ho un file (matricole.txt) che contiene nella prima riga, il numero di matricole presenti nel file e in seguito l'elenco di matricole
    (es 4
    152245
    765432
    987654
    765432
    )

    per poter recuperare la prima riga quindi in questo caso il 4 che poi mi serve per impostare dei cicli per compiere diverse operazioni come devo fare?

    io ho provato così:

    int mai(void)
    {
    fstream input;
    input.open("matricole.txt",ios::in);
    int i;
    input>>i;
    }

    nel codice non mi da errori, solo che se provo a fare una stampa di i mi da un risultato sbagliato.

    Qualcuno mi può spiegare come fare??

    grazie =)

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Hai un risultato sbagliato perché viene letto anche: (es , che non è un intero.
    La riga corretta di lettura (solo la prima però) é:
    codice:
    std::string pop;
    int i;
    input>> pop >>i;
    pop conterrà: (es, mentre i conterrà il 4. Poi procedi a leggere solo interi.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    ma es nel file non c'è.. era per dire che quello che seguiva era un esempio del txt dai cui devo estrarre il numero intero..quindi il problema c'è ancora perchè se stampo i mi da un numero grandissimo negativo

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Sicuro che il file venga aperto? Altrimenti lo stream ignora l'operazione di estrazione e i terrà in valore casuale con cio viene creata. Introduci un controllo.

    codice:
    fstream input;
    input.open("matricole.txt",ios::in);
    int i;
    if (input) { 
        input>>i;
    } else {
        cout << "file non trovato" << endl;
    }
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  5. #5
    effettivamente l'errore è qui, difatti non mi trova il file.. però il file è nella stessa cartella del codice sorgente quindi non capisco perchè non lo rileva.. negli altri esercizi che ho fatto non ha mai dato errore

  6. #6
    ho provato a utilizzare un altro file presente nella stessa cartella e inspiegabilmente questo va.. probabilmente è proprio il file txt da cui volevo prendesse i dati che crea problemi..
    grazie mille per l'aiuto =)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.