Domanda Risolto Domanda basilare sulla funzione Getline (Abbinata alla fstream)

DanyDollaro

Utente Electrum
14 Luglio 2018
148
41
58
138
Ultima modifica:
Salve a tutti, dato il semplice codice:
C++:
#include <iostream>
#include <fstream>
#include <string>

int main () {
  std::string line;
  std::ifstream myfile ("example.txt");
  if (myfile.is_open())
  {
    while ( getline (myfile, line) )
    {
      std::cout << line << '\n';
    }
    myfile.close();
  }

  else std::cout << "Unable to open file";

  return 0;
}
(Quello che fa è mostrare a schermo il contenuto di un file chiamato "Example.txt")

Non capisco come faccia la funzione Getline a prendere sempre la riga seguente rispetto a quella attuale:
ovvero, considerando il codice qui sopra ed un file di testo "example.txt" con il seguente contenuto:
Codice:
Riga_1
Riga_2
Riga_3
la funzione Getline dopo aver preso il contenuto della prima riga non appena il ciclo verrà riavviato prenderà il contenuto della seconda riga e poi della terza, eppure secondo la mia logica non c`è nessuna variabile che li permetta di ricordare qual`è stata l`ultima riga che ha preso, quindi non capisco perchè non si suffermi sulla prima riga.
 
Salve a tutti, dato il semplice codice:
C++:
#include <iostream>
#include <fstream>
#include <string>

int main () {
  std::string line;
  std::ifstream myfile ("example.txt");
  if (myfile.is_open())
  {
    while ( getline (myfile, line) )
    {
      std::cout << line << '\n';
    }
    myfile.close();
  }

  else std::cout << "Unable to open file";

  return 0;
}
(Quello che fa è mostrare a schermo il contenuto di un file chimato "Example.txt")

Non capisco come faccia la funzione Getline a prendere sempre la riga seguente rispetto a quella attuale:
ovvero, considerando il codice qui sopra ed un file di testo "example.txt" con il seguente contenuto:
Codice:
Riga_1
Riga_2
Riga_3
la funzione Getline dopo aver preso il contenuto della prima riga non appena il ciclo verrà riavviato prenderà il contenuto della seconda riga e poi della terza, eppure secondo la mia logica non c`è nessuna variabile che li permetta di ricordare qual`è stata l`ultima riga che ha preso, quindi non capisco perchè non si suffermi sulla prima riga.
Certo, ogni file handle ha anche un cursore che indica in che posizione stai leggendo (o scrivendo) nel file.