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

Rispondi quotando