Ir para conteúdo
Fórum Script Brasil
  • 0

Como Consero Esse Erro


linkzone

Pergunta

O programinha q eu fiz ta tanto uns erros mas não consigo consertar será q alguém pode me falar como arrumar?

#include <stdio.h>
#define NULL 0
# define VERD 1

/* criar um registro de dados contendo registros de clientes */

typedef struct {
	int mes;
	int dia;
	int ano;
} data;

typedef struct {
	char nome [80];
	char endereco[80];
	char cidade;
	int num_conta; /* (inteiro positivo) */
	char tipo_conta;  /* N (normal), A (atras.) ou I (inad.) */
	float saldoant; /* (quantiadade não negativa) */
	float saldonovo;
	float pagto;
	data ultpag;
} registro;

FILE *ptant, *ptnovo; /* ponteiro p/ a estrutura FILE */
int dia, mes, ano;   /* declaracao de variaveis globais*/

main()
{
	int flag = VERD; /* declaracao de variavel local*/
	registro cliente; /* declaracao de variavel estrutura*/
	registro learq(registro cliente); /* decl funcao*/
	registro atualiza(registro cliente);
	void garvaarq (registro cliente);

/* abrir um novo arquivo de dados para gravacao apemas*/
fpt = fopen ("registro.dat","w");
/* abrir arquivos de dados*/
if ((ptant = fopen ("registro.ant","r")) == NULL){
	printf("\nERRO - O arquivo de leitura não pode");
	printf("ser aberto\n");

}
ptnovo = fopen("registro.nov","w");

/* ler a data corrente */
printf("Sistema Bamcario - Atualizacao\n\n");
printf ("Digite a data de hoje (dd/mm/aaaa):");
scanf ("%d%d%d",&dia, &mes, &ano

	/* loop principal */
  while (flag) {

  /* ler um nome do arquivo antigo e gravar no novo arquivo*/
  fscan(ptold, "%[^/n]",cliente.nome);
  fprintf(ptnovo, "\n%s\n", cliente.nome);

  /* testar a condicao de termino */
  if (strcmpi(cliente.nome, "FIM")==0)
  break;

  /* ler o resto dos dados do arquivo de dados antigo*/
  cliente=learq(cliente);

  /* atualizar os dados */
  cliente = atualiza(cliente);

  /* gravar os dados atualizados no novo arquivo de dados*/
  gravarq(cliente){;
}
       fclose(ptant){;
       fclose(ptnovo);
}
registro learq (registro cliente){ /* ler o resto dos dados do arquivo antigo*/
  {
	fscanf(ptold, "%[^\n]", cliente.endereco);
	fscanf(ptold, "%[^\n]", cliente.cidade);
	fscanf(ptold, " &d", cliente.num_conta);
	fscanf(ptold, " &c", cliente.tipo_conta);
	fscanf(ptold, " &f", cliente.saldoant);
	fscanf(ptold, " &f", cliente.saldonovo);
	fscanf(ptold, " &f", cliente.pagto);
	fscanf(ptold, " %d%d%d", &cliente.ultpag.mes,
    &cliente.ultpag.mes,
    &cliente.ultpag.ano);
    return(cliente);
	}
	registro atualiza(registro cliente) /*solicitar novas info, atualizar o registro e exibir */
	{
	printf("\n\nNome: %s", cliente.nome);
	printf("    Numero da conta: %d\n", cliente.num_conta);
	printf("\nSaldo Anterior: %7.2f", cliente.saldoant);
	printf("   Pagamento Corrente: ");
	scanf("&f", &cliente.pagto);

	if (cliente.pagto > 0) {
	cliente.ultpag.dia = dia;
	cliente.ultpag.mes = mes;
	cliente.ultpag.ano = ano;
	cliente.tipo_conta =
  (cliente.pagto < 0.1 * cliente.saldoant) ? 'A' : 'N';
}
else
	cliente.tipo_conta = (cliente.saldoant > 0) ? 'I' : 'N'

	cliente.saldonovo = cliente.saldoant - cliente.pagto;
	printf("saldo novo" %7.2f, cliente.saldonovo);

	printf("   Status da Conta: ");
	switch (cliente.tipo_conta){
	case 'N':
	printf("NORMAL\n");
	break;
	case 'A':
	printf("ATRASADO\n");
	break;
	case 'I':
	printf("inadimplente\n");
	break;
	default:
	printf ("ERRO\n");
 }
return(cliente);
}

void gravaarq(registro cliente) /*gravar as informacoes atualizadas no novo arquivo */
{
	fprintf(ptnovo,"%s\n", cliente.endereco);
	fprintf(ptnovo "%s\n", cliente.cidade);
	fprintf(ptnovo,"%d\n", cliente.num_conta);
	fprintf(ptnovo,"%c\n", cliente.tipo_conta);
	fprintf(ptnovo,"%.2f\n", cliente.saldoant);
	fprintf(ptnovo,"%.2f\n", cliente.saldonovo);
	fprintf(ptnovo,"%.2f\n", cliente.pagto);
	fprintf(ptnovo, "&d&d&d\n", cliente.ultpag.dia, cliente.ultpag.mes, cliente.ultpag.ano)
	return;

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

meio vago, parece que teu while ta ok. o compilador retorna algum erro?

Link para o comentário
Compartilhar em outros sites

  • 0

fscanf(ptold, "%[^/n]",cliente.nome);

fclose(ptant);

fclose(ptnovo);

Tem mais alguns mas esses são mesmo obvios. Tens de ter mais attention a codar. Vê umas xavetas q tens a mais e uns ; tb q de resto tá bom. Ah tb faltam uns " em algum lado ou então em casos em q esta mal colocado. Stay cool and remember: War is not de Answer!!!

wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0
fscanf(ptold, "%[^/n]",cliente.nome);

fclose(ptant);

fclose(ptnovo);

Tem mais alguns mas esses são mesmo obvios. Tens de ter mais attention a codar. Vê umas xavetas q tens a mais e uns ; tb q de resto tá bom. Ah tb faltam uns " em algum lado ou então em casos em q esta mal colocado. Stay cool and remember: War is not de Answer!!!

wink.gif

mesmo assim não funciona aonde tem mais erro sad.gif

Link para o comentário
Compartilhar em outros sites

  • 0

E aí, bichão? laugh.gif

Aí, não precisa definir NULL, ela já está definida em "stdio.h".

Você fez:

fpt = fopen ("registro.dat","w");

mas não declarou "fpt". Você também não declarou ptold na função learq().

Vê só esse scanf():

scanf ("%d%d%d",&dia, &mes, &ano

Falta colocar o ")" e o ";".

Foram muitos erros bobos (falta de atenção) que você cometeu, cara. É melhor você organizar melhor o seu programa (para facilitar a leitura) e, com paciência e atenção, sabendo os erros que o compilador apontou, tentar corrigí-los, valeu?

Até breve! biggrin.gif

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...