Ho questo programma in c++ che deve prendere una matrice da file intput ed invertire i valori attraverso la prima diagonale ma non va
#include <iostream>
#include <stdio.h>
#define R 100
#define C 100
using namespace std;
void lettura(int matrice[][C],int*righe , int*colonne);
int main(){
int m[R][C];
int n[R][C];
int righe,colonne;
lettura(m, &righe, &colonne);
for(int i=0;i<*righe;i++){
for(int j=0;j<*colonne;j++){
n[ i ][j]=m[ j][ i ];
}
}
FILE*fd;
fd=fopen("output.txt","w");
if (fd==NULL)printf("errore");
int i,j;
for(i=0;i<*righe;i++){
for(j=0;j<*colonne;j++){
fprintf(fd,"%d",n [ i ] [j]);
}
fprintf(fd,"\n");
}
fclose(fd);
}
void lettura(int matrice[][C],int*righe , int*colonne){
FILE*fp;
int r,c,i,j;
fp=fopen("input.txt","r");
if(fp==NULL)printf("errore apertura file");
fscanf(fp,"%d",&r);
fscanf(fp,"%d",&c);
*righe=r;
*colonne=c;
for(i=0;i<r;i++){
for(j=0;j<c;j++){
fscanf(fp,"%d",matrice [ i ] [j]);
}
}
fclose(fp);
}