Salve a tutti scusate se chiedo sempre spero un giorno di poter aiutare altri in difficoltà come me e ricambiare.

Il mio programma è molto semplice deve prendere da file una matrice allocarla dinamicamente stamparla e poi successivamente prendere questa matrice e fare le somme degli elementi delle righe e metterli un array anch'esso allocato dinamicamente però mi stampa cose che non centrano non capisco cosa sbaglio.

Questo è il moi file.txt



3


1 2 3


4 5 8


5 1 1

Questa è la mia libreria:

codice:
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <cstring>


using namespace std;


#define N 100


typedef char Stringa [N];


void carica_file(Stringa , fstream &, int *);
void riempimento_matrice(Stringa ,fstream &, int **, int d);
void stampa_matrice(int ** ,const int );
void somma_righe(int **, int *, const int);
void stampa_vettore(int *, const int );

Questa è sono le mie funzioni :

codice:
#include "summat.h"


void carica_file(Stringa nome, fstream &f, int *size){
    
    int d;
    
    cout<<"\n Inserisci nome del file :";
    cin.getline( nome, N-1, '\n');
    f.open(nome, ios::in);
    if(!f){
        
        cout<<"\n Errore in fase di apertura file insesitente o nome errato.";
        exit(1);
    
    }else {
        
        f>>d;
        
    }
    
    *size=d;
    




}


void riempimento_matrice(Stringa nome, fstream &f, int **m, int d){
    
    for(int i=0; i<d; i++){
        
        for(int j=0; j<d; j++){
            
            f>>m[i][j];
            
        }
        
    }
    
    f.close();
    
}




void stampa_matrice( int **matrix,const int dimensione){
    
    for(int i=0; i<dimensione; i++){
        
        for(int j=0; j<dimensione; j++){
            
            cout<<matrix[i][j]<<" ";
            
        }
        
    cout<<endl;
        
    }
    
    cout<<endl;
    
}




void somma_righe(int **mat, int *vett, const int dim){
    
    int somma=0, cont=0, tot=0, x=0;
    
    for(int i=0; i<dim; i++){
        
        for(int j=0; j<dim; j++){
            
            somma += mat[i][j];
            cont++;
            
            if(cont==dim){
                
                vett[x]=somma;
                x++;    
                somma=0;
            }
        }
        
    }
    
}


void stampa_vettore(int *vett, const int d){
    
    cout<<"\n Il vettore delle somme delle righe è il seguente: \n";
    
    for(int i =0; i<d; i++){
        
        cout<<vett[i]<<endl;
        
    }
    
}
Questo è il mio main:

codice:
#include "summat.h"


int main(){
    
    Stringa nome_file;
    fstream file;
    int **mat;
    int dim;
    


    carica_file(nome_file, file, &dim);
    
    mat= new int*[dim];
    
    for(int i=0; i<dim; i++){
        
        mat[i]= new int[dim];
        
    }


    riempimento_matrice(nome_file, file, mat, dim);
    
    cout<<"\n La matrice letta è: \n";
    
    stampa_matrice(mat, dim);
    
    int *vet= new int [dim];
    stampa_vettore(vet, dim);
    
    


}
Questo è quello che mi stampa:

1.png
2.png