Estou tentando criar um programa em C que a partir de um arquivo bolsista1.cad gere um versão randômica dele usando como "critério de organização" o código do bolsista -1(para ocupar a posição 0 do arquivo). Todavia, o código que elaborei não está funcionando e não estou conseguindo resolver o problema.
Por favor, ajudem-me a corrigir o problema desse código. Segue-o abaixo.
Muito obrigado!
Eduardo F. de Conto.
P.S: Estou usando o compilador DEV-C++.
struct data
{
int codigo;
char nome[TEXTO];
int tipo_bolsa;
char email [TEXTO];
};
struct modif
{
int codigo;
char nome[TEXTO];
int tipo_bolsa;
char email [TEXTO];
int mes_venc;
int ano_venc;
};
void Conv_Randomica (FILE *, FILE *, struct data *, struct modif *, int);
void Listagem1 (FILE *, struct data);
void Listagem2 (FILE *, struct modif);
int main()
{
struct data buffer;
struct modif buffer2;
if((arq = fopen("bolsista1.dat", "rb"))==NULL){
printf("Erro ao abrir o arquivo bolsista1.dat.\n");
system("PAUSE");
}
if (!(arq2 = fopen("bolsista2.dat", "wb"))){
printf("Erro ao criar o arquivo bolsista2.dat.\n");
system("PAUSE");
}
else{
Listagem1(arq, buffer);
rewind(arq);
Conv_Randomica(arq, arq2, &buffer, &buffer2, COD);
rewind(arq2);
Listagem2(arq2, buffer2);
fclose(arq2);
system("PAUSE");
return 0;
}
}
void Conv_Randomica (FILE *arq, FILE *arq2, struct data *buffer, struct modif *buffer2, int cod)
{
int i;
if((arq = fopen("bolsista1.dat", "rb+"))==NULL){
printf("Erro ao abrir o arquivo bolsista1.dat.\n");
system("PAUSE");
}
for(i=1; i < cod; i++){
while (fread(buffer, sizeof(struct data), 1, arq)){
printf("pos:%d", ftell(arq));
if(buffer -> codigo == i){
buffer2 -> codigo = buffer ->codigo;
(buffer2 -> codigo)--;
strcpy(buffer2 ->nome, buffer -> nome);
buffer2 -> tipo_bolsa = buffer->tipo_bolsa;
strcpy(buffer2 -> email, buffer-> email);
buffer2 -> mes_venc = buffer2 -> ano_venc = 0;
fwrite (buffer2, sizeof(buffer2), 1, arq2);
}
}
}
}
Pergunta
Eduardo de Conto
Olá!
Estou tentando criar um programa em C que a partir de um arquivo bolsista1.cad gere um versão randômica dele usando como "critério de organização" o código do bolsista -1(para ocupar a posição 0 do arquivo). Todavia, o código que elaborei não está funcionando e não estou conseguindo resolver o problema.
Por favor, ajudem-me a corrigir o problema desse código. Segue-o abaixo.
Muito obrigado!
Eduardo F. de Conto.
P.S: Estou usando o compilador DEV-C++.
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.