Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    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;
    }
    Ultima modifica di MItaly; 10-02-2016 a 20:01
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.