#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;
}