Stavo provando ad acquisire dei dati da file in una stringa e poi portarli in una matrice ma non riesco. Arriva fino alla terza riga e poi si pianta. Dov'è sbagliato l'algoritmo? Grazie 

file in questione:
.GATTO.....LINO
.A.O....A..A..A
.S.RITORNO.U...
...I....N..R...
...N...SOGNO...
POMODORO......
codice:
while(fgets(str,N,ff)!=NULL){
len=strlen(str);
if(str[len-1]=='\n'){
str[len-1]='\0';
len=len-1;}
for(i=0;i<N+2;i++)
matrix[righe+1][i]='.';
for(i=0;i<len;i++){
matrix[righe+1][i]=str[i];
}
righe++;}