è pari pari quello che ho posta prima,ho solo cambiato quella parte che hai detto tu.Anzi mi da un solo errore,sempre relativo alla riga colonne = i/righe; nella funzione conteggio
codice:#include <iostream>#include <fstream> #include <cstdlib> using namespace std; int conteggio (int *righe,int *colonne); void leggi (int **mat,int righe,int colonne); void stampa (int **mat,int righe,int colonne); int main () { int *righe; int *colonne; int **mat; bool uscita = false; int opzione; conteggio( &righe, &colonne); cout << righe << colonne; mat = new int*[righe]; for (int i=0;i<righe;i++) { mat[i] = new int [colonne]; } while (uscita == false) { cout << "\nScegli una opzione:\n"; cout << "1)Leggi.\n"; cout << "2)Stampa.\n"; cout << "3)Esci dal programma.\n"; cin >> opzione; switch (opzione) { case (1): leggi(mat,righe,colonne); cout << "\n\n\n"; break; case (2): stampa (mat,righe,colonne); cout << "\n\n\n"; break; case (3): uscita = true; break; } } cout << "\n\n\n"; } int conteggio (int *righe,int *colonne) { char contarighe[10]; int contacolonne; fstream file; file.open("dati.txt",ios::in); if (!file) { cout << "Errore apertura file!"; } while (!file.eof()) { file.getline (contarighe,10); righe++; } file.seekg(0); int i=0; while (!file.eof()) { file >> contacolonne; i++; } colonne = i/righe; } void leggi(int **mat,int righe,int colonne) { fstream file; file.open("dati.txt",ios::in); if (!file) cout << "errore apertura file"; else { for (int i=0;i<righe;i++) { for (int j=0;j<colonne;j++) { file >> mat[i][j]; } } cout << "il file e' stato letto con successo\n"; } system("pause"); } void stampa (int **mat,int righe,int colonne) { for (int i=0;i<righe;i++) { for (int j=0;j<colonne;j++) { cout << mat[i][j] << " "; } cout << "\n"; } system("pause"); }

Rispondi quotando
