#include <stdio.h> #include <stdlib.h> #define N 4 int main(int argc, char *argv[]) { int valores[4][4], i, j; FILE *entradaTexto, *entradaBinaria; if(argc != 3) { fprintf(stderr, "Tem de passar dois argumentos!\n"); return EXIT_FAILURE; } if((entradaTexto = fopen(argv[1], "r")) == 0) { fprintf(stderr, "Erro abrindo o ficheiro \"%s\".\n", argv[1]); return EXIT_FAILURE; } if((entradaBinaria = fopen(argv[2], "rb")) == 0) { fprintf(stderr, "Erro abrindo o ficheiro \"%s\".\n", argv[2]); return EXIT_FAILURE; } /* Leitura de texto: */ for(i = 0; i < N; i++) for(j = 0; j < N; j++) if(fscanf(entradaTexto, "%d", &valores[i][j]) != 1) { fprintf(stderr, "Erro lendo elemento [%d][%d]!\n", i, j); return EXIT_FAILURE; } /* Escrita no ecra: */ printf("Ficheiro de texto:\n"); for(i = 0; i < N; i++) { for(j = 0; j < N; j++) printf("%3d ", valores[i][j]); putchar('\n'); } /* Leitura binaria: */ if(fread(valores, sizeof(int), N*N, entradaBinaria) != N*N) { fprintf(stderr, "Erro lendo ficheiro binario!\n"); return EXIT_FAILURE; } /* Escrita no ecra: */ printf("Ficheiro binario:\n"); for(i = 0; i < N; i++) { for(j = 0; j < N; j++) printf("%3d ", valores[i][j]); putchar('\n'); } fclose(entradaTexto); fclose(entradaBinaria); return EXIT_SUCCESS; }