Leggere da file stringhe riga per riga [C++]

di il
6 risposte

Leggere da file stringhe riga per riga [C++]

Salve a tutti, sono iscritto al primo anno di ingegneria e poiché provengo da un liceo classico ho qualche difficoltà nella programmazione in c++.
Tra un po' ho l'esame scritto di informatica e per esercitarmi sto cercando di svolgere alcuni esercizi che ci ha dato il professore e sto avendo difficoltà con uno di questi.
Il compito consiste nel creare un programma che, dato un file testo con dei nomi maschili e femminili scritti sequenzialmente riga per riga, conti e produca in output i nomi maschili e femminili contenuti nel file senza ripetizioni (i nomi maschili terminano per "o" e quelli femminili per "a").
Il primo problema che non riesco a risolvere è leggere dal file i nomi scritti in ordine sequenziale. Come faccio a leggerli uno per uno e a farci operazioni (ad esempio di verifica dell'ultimo carattere)?
Grazie.

6 Risposte

  • Re: Leggere da file stringhe riga per riga [C++]

    Ciao, a questa pagina puoi trovare utili suggerimenti ed esempi per quanto riguarda l'input/output da file. In particolare, questo esempio dovrebbe fare al caso tuo:
    
    // reading a text file
    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    
    int main () {
      string line;
      ifstream myfile ("example.txt");
      if (myfile.is_open())
      {
        while ( getline (myfile,line) )
        {
          cout << line << '\n';
        }
        myfile.close();
      }
    
      else cout << "Unable to open file"; 
    
      return 0;
    }
    
    Come vedi, la chiave è utilizzare la funzione getline: qui trovi la relativa documentazione.
  • Re: Leggere da file stringhe riga per riga [C++]

    Grazie
  • Re: Leggere da file stringhe riga per riga [C++]

    Scusatemi però adesso ho un altro problema: leggendo il file riga per riga con il codice scritto sopra inserito in un ciclo while, ho capito come fare a verificare l'ultimo carattere, ma come faccio a confrontare l'intera stringa per vedere se c'era già una riga del file uguale? Perché i nomi vanno stampati senza ripetizioni...
  • Re: Leggere da file stringhe riga per riga [C++]

    Penso tu debba aprire un altro thread e spiegare meglio.
  • Re: Leggere da file stringhe riga per riga [C++]

    Praticamente ho un file con dei nomi (quelli maschili finiscono in "o" e quelli femminili in "a") e devo leggere questi nomi da file e devo contare e produrre in output i nomi maschili e quelli femminili.
    Ad esempio:

    File=nomi.txt
    Carlo
    Marta
    Carlo
    Luisa
    Francesco
    Marta

    Output= il file contiene 2 nomi maschili diversi (Carlo, Francesco) e 2 nomi femminili diversi (Luisa, Marta).

    Ora dovrebbe essere abbastanza chiaro.
  • Re: Leggere da file stringhe riga per riga [C++]

    oregon ha scritto:


    Penso tu debba aprire un altro thread
Devi accedere o registrarti per scrivere nel forum
6 risposte