lucachf
(usa Ubuntu)
Enviado em 04/12/2015 - 15:25h
preciso ler um valor do teclado para realizar saque ou deposito, ate ai tudo bem o problema e que nao consigo realizar a alteracao dentro do arquivo, ele cria uma nova conta
codigo da funcao:
void movimentacao_conta(FILE *conta,FILE *movimentacao,int opcao){/*funcao para salvar movimentacoes de conta no arquivo*/
tipo_conta f;
float valor;
tipo_movimentacao mf;
long int idconta;
int i,t,achou,op;
fseek(conta,0,SEEK_END);
i=ftell(conta)/sizeof(tipo_conta);
if(i<1)
printf("\nNenhuma conta cadastrada!!!");
else{
lista_conta(conta);
do{
printf("\n\nForneca o numero da conta: ");
scanf("%ld",&idconta);
achou=pesquisa_conta(conta,idconta);
printf("\nACHOU %d",achou);
if(achou==-1)
printf("\nConta nao encontrada!!");
else{
fseek(conta,achou*sizeof(tipo_movimentacao),SEEK_CUR);
fscanf(conta,"%f",f.saldo);
printf("saldo %f",f.saldo);
fread(&f,achou*sizeof(tipo_conta),1,conta);
fseek(movimentacao,0,SEEK_END);
t=ftell(movimentacao)/sizeof(tipo_movimentacao);
printf("\nDigite o valor: ");
scanf("%f",&valor);
printf("\nVALOR %.2f",valor);
printf("\nAchou %d",achou);
fread(&f,achou*sizeof(tipo_conta),0,conta);
printf("\nSeu saldo anterior: R$ %.2f",f.saldo);
if(opcao==4){
f.saldo=f.saldo+valor;
mf.tipomovimentacao='C';
printf("\nDepoito de R$ %.2f realizado com sucesso!!",valor);
printf("\nSeu saldo atualizado: R$ %.2f",f.saldo);
}
else{
f.saldo=f.saldo+valor;
mf.tipomovimentacao='D';
printf("\nSaque de R$ %.2f realizado com sucesso!!",valor);
printf("\nSeu saldo atualizado: R$ %.2f",f.saldo);
}
mf.idmovimentacao=t+1;
mf.idconta=idconta;
mf.idcliente=f.idcliente;
mf.valor=valor;
printf("\nDIgite a data de hoje: ");
funcao_data(mf.data);
fwrite(&mf,sizeof(tipo_movimentacao),1,movimentacao);
fwrite(&f,sizeof(tipo_conta),1,conta);
}
printf("\nDeseja sair? 1-SIM 2-NAO: ");
scanf("%d",&op);
}while(fread(&f,sizeof(tipo_conta),1,conta)==1||op!=1);
}
}