Tentei fazer um código em que ele próprio escreva os números de 0 a 199 no arquivo txt para que eu não faça isso manualmente. O arquivo txt é escrito automático, de forma a formar uma matriz 20x10. Entretanto, a impressão desses números no terminal não ocorre. Acredito que deva conter algum erro neste trecho, pois se eu deleto este trecho tudo volta a funcionar (estando o txt já preenchido com os números). Coloquei no código os comentários referentes a cada trecho.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char const *argv[])
{
int numeros[20][10]; //10 colunas + 1?
int num = 0;
FILE* f;
f = fopen("numeros.txt", "r+");
if (f == 0){
printf("Desculpe, banco de dados inexistente!\n\n");
exit(1);
}
printf("Escrevendo no documento . . .\n\n");
//escreve matriz em txt para eu não ter que digitar manualmente (se deletar estas 7 linhas o código funciona):
for (int linha = 0; linha < 20; linha++){ //1
for (int coluna = 0; coluna < 10; coluna++){ //2
fprintf(f, "%d ", num); //3
num++; //4
} //5
fprintf(f, "%s", "\n"); //6
} //7
//lê cada linha do arquivo txt, guarda na matriz e imprime o número no terminal:
for(int i = 0; i < 20; i ++){
for(int j = 0; j < 10; j ++){
fscanf(f," %3d", &numeros[i][j]);
printf("%d ", numeros[i][j]);
}
printf("\n");
}
fclose(f);
return 0;
}
A saída impressa errada é: