Buonasera a tutti!
Ho creato un programma che scriva in un file txt (nella cartella del programma) la posizione (numerate da 0 a 9) delle parole in un altro file txt suddivisi da virgole o punto.
Esempio,apre il primo txt che contiene:
"sole,ciao,due."
Mi crea un altro file txt dove conversa il numero delle parole che legge (che conto tramite un contatore che ho chiamato "parole" e deve dirmi a che posizione inizia e finisce la frase,esempio,con il txt di esempio di prima mi fa un altro txt con scritto:
"103 258 31012",il problema è che aprendo il primo file in lettura non mi esce mai dal while che dovrebbe verificare la fine del file (ovvero quando non c'è più nulla da leggere),ecco il codice:


codice:
#include <iostream>
#include <stdlib.h>
#include <fstream>

using namespace std;

void scrittura_file(int inizio, int fine,int parole){
   ofstream miofile;

   miofile.open("dati parole.txt");
   miofile<<parole<<inizio<<fine<<endl;
   miofile.close();

}

int main(){
  ifstream OpenFile("testo.txt");
  int a;
  int inizio=0,fine=0,parole=0,contatore=0;;
  bool ciclo=0;
  while(!OpenFile.eof())
  {
    OpenFile>>a;
    if ((a == 44) || (a== 46)){
    parole++;
    scrittura_file(inizio,fine,parole);
    }
    if (ciclo==0)
    inizio=0;
    else{
    inizio=fine+2;
    fine=contatore;
    contatore++;
    }
    ciclo=1;
  }
  OpenFile.close();
}