#include <stdio.h> #include <stdlib.h> #define LINHA_MAX 200 int main(int argc, char *argv[]) { char s1[LINHA_MAX], s2[LINHA_MAX]; /* para guardar as linhas. */ FILE *entrada1, *entrada2; if(argc != 3) { fprintf(stderr, "Tem de passar dois argumentos!\n"); return EXIT_FAILURE; } if((entrada1 = fopen(argv[1], "r")) == 0) { fprintf(stderr, "Erro abrindo o ficheiro \"%s\".\n", argv[1]); return EXIT_FAILURE; } if((entrada2 = fopen(argv[2], "r")) == 0) { fprintf(stderr, "Erro abrindo o ficheiro \"%s\".\n", argv[2]); return EXIT_FAILURE; } while(1) { int eof1 = fgets(s1, LINHA_MAX, entrada1) == 0; int eof2 = fgets(s2, LINHA_MAX, entrada2) == 0; if(eof1) { if(!eof2) printf("\"%s\" e' mais curto que \"%s\".\n", argv[1], argv[2]); break; } else if(eof2) { printf("\"%s\" e' mais curto que \"%s\".\n", argv[2], argv[1]); break; } if(strcmp(s1, s2) != 0) { printf("---\n%s: %s\n---\n%s: %s\n---\n", argv[1], s1, argv[2],s2); break; } } fclose(entrada1); fclose(entrada2); return EXIT_SUCCESS; }