Code:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX_ROWS 20
#define MAX_COLS 20
bool recuperation(int t[][MAX_COLS], const char *nomFichier, int *rows, int *cols) {
FILE *fp = fopen(nomFichier, "r");
*rows = *cols = 0;
if (!fp) {
printf("\n Fichier vide \n");
return false;
}
fscanf(fp, "%d%d", rows, cols);
if (*rows <= 0 || *rows > MAX_ROWS || *cols <= 0 || *cols > MAX_COLS) {
fclose(fp);
printf("\nNumber of rows or columns out of range\n");
return false;
}
for (int r = 0; r < *rows; r++)
for (int c = 0; c < *cols; c++)
fscanf(fp, "%d", &t[r][c]);
fclose(fp);
return true;
}
int main() {
int t[MAX_ROWS][MAX_COLS];
int rows, cols;
if (!recuperation(t, "myfile", &rows, &cols)) {
printf("Could not read file\n");
exit(EXIT_FAILURE);
}
for (int r = 0; r < rows; r++) {
for (int c = 0; c < cols; c++)
printf("%2d ", t[r][c]);
printf("\n");
}
return 0;
}