Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- void stampa(string *p, int quanti)
- {
- for (int i=0; i<quanti; i++)
- cout << p[i] << endl;
- }
- string *infinite_file_read(string nome_file, int &totale_righe, int &dimensione)
- {
- dimensione = 5;
- totale_righe = 0;
- string *p = new string[dimensione];
- ifstream leggi(nome_file);
- string riga = "";
- while ( getline(leggi, riga) )
- {
- if (totale_righe==dimensione)
- {
- string *temp = new string[dimensione*2];
- //copiamo le righe gia' lette in questo nuovo spazio
- for (int i=0; i<dimensione; i++) temp[i] = p[i];
- dimensione *= 2;
- //restituiamo lo spazio per il vecchio array ormai saturo
- delete[] p;
- p = temp;
- }
- p[totale_righe] = riga;
- totale_righe++;
- }
- leggi.close(); leggi.clear();
- return p;
- }
- int main()
- {
- int totale_righe = 0;
- int max_righe = 0;
- string *p = infinite_file_read("dati.txt", totale_righe, max_righe);
- cout << max_righe << endl;
- stampa(p, totale_righe);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement