No, il gioco dovrebbe essere completamente automatico... una cosa di questo genere:
codice:#include <iostream> #include <fstream> const int default_capacity = 16; int main() { std::ifstream miofile("dati.txt"); if(!miofile) { std::cerr<<"Impossibile aprire il file\n"; return 1; } // partiamo con size 0 (vettore vuoto) e una capacity qualunque int size=0; int capacity=default_capacity; int *vec = new int[capacity]; int r; while(miofile>>r) { // dobbiamo aggiungere un elemento if(size>=capacity) { // vec è pieno; creiamo un nuovo array grande il doppio capacity*=2; int *newvec = new int[capacity]; // ci copiamo i vecchi elementi for(int i=0; i<size; ++i) newvec[i]=vec[i]; // buttiamo via il vecchio delete[] vec; // e assegnamo a vec il puntatore al nuovo vec = newvec; } // qui l'array puntato da vec è sicuramente grande a sufficienza // accoda il valore letto vec[size]=r; // incrementa la dimensione logica ++size; } // arrivati qui il file è stato letto completamente; fai quello che devi fare std::cout<<"Letti "<<size<<" elementi dal file\n"; for(int i=0; i<size; ++i) std::cout<<vec[i]<<"\n"; // alla fine dealloca delete[] vec; return 0; }

Rispondi quotando