#include <stdio.h> #include <stdlib.h> #define NOME_MAX 25 /* tamanho maximo dum nome. */ #define NOMECAD "25" /* idem em formato de cadeia. */ #define NOMEMAT_MAX (NOME_MAX+1) /* 25 para o nome e 1 para o '\0'. */ int main(int argc, char *argv[]) { int numero, teste, trabalho; char nome[NOME_MAX]; FILE *entrada; if(argc != 2) { fprintf(stderr, "Tem de passar um argumento!\n"); return EXIT_FAILURE; } if((entrada = fopen(argv[1], "r")) == 0) { fprintf(stderr, "Erro abrindo o ficheiro \"%s\".\n", argv[1]); return EXIT_FAILURE; } while(fscanf(entrada, "%d %" NOMECAD "c %d %d", &numero, nome, &teste, &trabalho) == 4) printf("Numero: %d\nNome: %s\n" "Nota no teste: %d\nNota do trabalho: %d\n\n", numero, nome, teste, trabalho); fclose(entrada); return EXIT_SUCCESS; }