Tenho que ler um arquivo de ponto, txt, com o seguinte layout:
nome;dia;turno1;turno2
turno1 e turno2 é um int, sendo que 1 trabalhou e 0 esteve ausente.
ex.:
João Paulo;1;1;1
Paulo;1;1;1
enfim, um txt que armazena dados neste formato.
O programa que tenho que concluir tem as seguintes structs:
//Estrutura utilizada para armazenar o ponto de um dia (turnos da manhã e noite)
typedef struct sPontoDia
{
int iManha;
int iTarde;
}
stPontoDia;
//Estrutura utilizada para armazenar os dados de um funcionário (nome e informações sobre os pontos)
typedef struct sDadosPonto
{
char sNome[50];
stPontoDia* vPontoDia;
}
stDadosPonto;
O problema todo é qeu tenho que fazer alocação de memória, de maneira que deverá rodar neste função:
eu não estou entendendo direito, já que inicialmente a função "inicializa" está fazendo referencia a vPontoDia informando o dia, sendo que a struct contem somente os campos iManha e iTarde. Não entendo como pode fazer referência a prDadosPonto[iFuncionario].vPontoDia[ ISTO_AQUI ] !!!!
Pergunta
jonasHenrique
Prezados,
Tenho que ler um arquivo de ponto, txt, com o seguinte layout:
nome;dia;turno1;turno2
turno1 e turno2 é um int, sendo que 1 trabalhou e 0 esteve ausente.
ex.:
João Paulo;1;1;1
Paulo;1;1;1
enfim, um txt que armazena dados neste formato.
O programa que tenho que concluir tem as seguintes structs:
//Estrutura utilizada para armazenar o ponto de um dia (turnos da manhã e noite) typedef struct sPontoDia { int iManha; int iTarde; } stPontoDia; //Estrutura utilizada para armazenar os dados de um funcionário (nome e informações sobre os pontos) typedef struct sDadosPonto { char sNome[50]; stPontoDia* vPontoDia; } stDadosPonto;O problema todo é qeu tenho que fazer alocação de memória, de maneira que deverá rodar neste função:void inicializa(void) { //Variáveis locais int iFuncionario=0, iDia=0; for (iFuncionario=0; iFuncionario < iQtdFuncionarios; iFuncionario++) { strcpy(prDadosPonto[iFuncionario].sNome,""); for (iDia = 0; iDia < iTotalDiasTrabalhados; iDia++) { prDadosPonto[iFuncionario].vPontoDia[iDia].iManha = 0; prDadosPonto[iFuncionario].vPontoDia[iDia].iTarde = 0; } } }Atualmente estou detido porque naõ consigo sair da função que se encontra assim:void alocaMemoria(void) { // IMPLEMENTE AQUI int iFuncionario=0, iDia=0; for (iFuncionario=0; iFuncionario < ( iQtdFuncionarios * iTotalDiasTrabalhados ); iFuncionario++) { prDadosPonto = (stDadosPonto*)malloc(sizeof(stDadosPonto) ); for (iDia = 0; iDia < iTotalDiasTrabalhados; iDia++) { prDadosPonto[iFuncionario].vPontoDia = ( stPontoDia*)malloc(sizeof(stPontoDia) ); } } }eu não estou entendendo direito, já que inicialmente a função "inicializa" está fazendo referencia a vPontoDia informando o dia, sendo que a struct contem somente os campos iManha e iTarde. Não entendo como pode fazer referência a prDadosPonto[iFuncionario].vPontoDia[ ISTO_AQUI ] !!!!
Por favor, me ajudem a inicializar esta lista!
Obrigado.
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.