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();
}