Programa em C não lê valores em arquivo de txt

Galera, de novo estou de volta. Apliquei algumas mudanças que os membros daqui sugeriram em um outro post, porém os valores continuam sem ser lidos da forma correta. Agora da até uns valores inteiros (antes o DOS imprimia valores negativos com mais de 5 algarismos). Segue parte do código:

void (CPU) { setlocale(LC_ALL, "Portuguese"); int matriiz_A[5][5]; char matriz_A[5][5]; int matriz_B[3][2]; int matriz_C[3][2]; int m, n, k, l, i, j, x, aux;  printf("\n Abaixo temos a matriz A \n");  FILE *matrizA; matrizA = fopen("matriz_A.txt", "r");  if (matrizA == NULL) {     printf("\nNão foi possivel abrir o arquivo. \n");     exit(0); }  while (fgets(matriz_A, 25, matrizA) != NULL); {     for (m = 0; m<5; m++)     {         for (n = 0; n<5; n++)         {             fscanf(matrizA," %d%*c ", &matriz_A[m][n]);             printf(" %d ", matriz_A[m][n]);         }         printf("\n");     } } fclose(matrizA); system("pause"); }   int main(int argc, char const *argv[]) { setlocale(LC_ALL, "Portuguese"); char escolha = '0';  printf("\nEm que modo você deseja executar o programa? \n"); printf("(1) CPU \n"); printf("(2) GPU \n"); printf("Qualquer outra tecla fecha o programa \n"); escolha = getche();  if (escolha == '1') {     CPU(); } else if (escolha == '2') {  } else if ((escolha != '1') && (escolha != '2')) {     printf("\nEscolha inválida. Programa será encerrado\n");     exit(1); }  //system("pause"); return 0; } 

Segue abaixo o arquivo .txt que quero ler:

01 00 02 03 04 00 05 06 00 07 08 09 00 11 12 13 00 14 15 00 00 00 16 17 18 

O resultado que obtive foi este:

inserir a descrição da imagem aqui

usando aux eu também obtive o mesmo resultado. Seria algum problema com a função getche()? Isso pq eu percebi que no Linux ela fazia sair lixo na matriz, já no windows não. Pesquisei a fundo na net e nao solucionei ainda. 🙁