AccioOnion
Membros-
Total de itens
1 -
Registro em
-
Última visita
Sobre AccioOnion
AccioOnion's Achievements
0
Reputação
-
#include <stdio.h> #include <stdlib.h> typedef struct Pessoa { int cc; char nome[51]; char partida[11]; char chegada[11]; short int dia; } PESSOA; int main() { int i; FILE* fps = fopen("okb","rb"); PESSOA passageiro; if (fps == NULL) { printf("Problemas na abertura do arquivo\n"); exit(1); } else { fread (&passageiro.cc, 4, 1, fps); fread (passageiro.nome, 1, 51, fps); fread (passageiro.partida, 1, 11, fps); fread (passageiro.chegada, 1, 11, fps); fread (&passageiro.dia, 2, 1, fps); printf("%d ", passageiro.cc); for(i = 0; i < 51; i++) { printf("%c", passageiro.nome[i]); } for(i = 0; i < 11; i++) { printf("%c", passageiro.partida[i]); } for(i = 0; i < 11; i++) { printf("%c", passageiro.chegada[i]); } printf("%hd\n", passageiro.dia); } fclose(fps); } Boa noite, estava aqui a fazer um trabalho e deparei-me com isto e não consigo perceber o porquê da função não ler o que eu pretendo. Acho que deve ser algo bem simples mas como sou novo nisto não estou a conseguir detetar o que falha. É suposto esta função ler umas informações que estão num ficheiro em binário, o número do cc, nome da pessoa, local de partida e chegada do avião e dia do mês. Mas ao detetar o dia do mês a função em vez de escrever um número entre 1 - 30 escreve 256. Alguém percebe porquê?