Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SerraVentura

[Resolvido] Erro função alterar e excluir

Recommended Posts

Pessoal estou fazendo um trabalho da faculdade relativamente simples, porém ta dando uns erros que não consigo identificar, ja testei algumas coisas em pesquisa no google e já vi exemplos q outros ja fizeram da mesma forma que eu, porém o meu ta dando alguns erros, acredito q seja algo bobo que não estou conseguindo ver, pois só utilizo C pra trabalho de faculdade mesmo...

 

os erros acontecem na função alterar e exluir...

 

na função alterar, quando acabo de preencher o novo nome do cliente da uma travada no windows;

na função excluir o erro é quando tento inserir um valor vazio no vetor (incompatible types in assignment of `const char[1]' to `char[20]')

 

void alterar(){

system("cls");

 

int id;

 

printf("\n Informe o ID: ");

fflush(stdin);

scanf("%d", id);

 

system("cls");

printf("\n Informe os novos dados:\n\n ");

 

printf("\n Informe seu Nome: ");

scanf("%s", cliente[id].nome);

 

printf("\n Informe seu Logradouro: ");

scanf("%s", cliente[id].ende.logradouro);

 

printf("\n Informe seu Bairro: ");

scanf("%s", cliente[id].ende.bairro);

 

system("cls");

printf("DADOS ALTERADOS COM SUCESSO!");

 

}

 

void excluir(){

system("cls");

 

int id;

 

printf("\n Informe o ID: ");

fflush(stdin);

scanf("%d", id);

 

cliente[id].nome = "";

cliente[id].ende.logradouro = "";

cliente[id].ende.bairro = "";

 

system("cls");

printf("DADOS APAGADOS COM SUCESSO!");

 

}

#include <stdio.h>
#include <cstdlib>
#define vetmax 3

int opc;
int qtdCliente = vetmax;

struct endereco{
       char logradouro[30];
       char bairro[30];
};

struct cliente{
       char nome[20];
       struct endereco ende;
}cliente[vetmax];

void inserir(){
   system("cls");
   int i;
   for(i=0;i<qtdCliente;i++){

      printf("\n Informe seu Nome: ");
      scanf("%s", cliente[i].nome);

      printf("\n Informe seu Logradouro: ");
      scanf("%s", cliente[i].ende.logradouro);

      printf("\n Informe seu Bairro: ");
      scanf("%s", cliente[i].ende.bairro);

   }

}

void alterar(){
   system("cls");

   int id;

   printf("\n Informe o ID: ");
   fflush(stdin);
   scanf("%d", id);

   system("cls");
   printf("\n Informe os novos dados:\n\n ");

   printf("\n Informe seu Nome: ");
   scanf("%s", cliente[id].nome);

   printf("\n Informe seu Logradouro: ");
   scanf("%s", cliente[id].ende.logradouro);

   printf("\n Informe seu Bairro: ");
   scanf("%s", cliente[id].ende.bairro);

   system("cls");
   printf("DADOS ALTERADOS COM SUCESSO!");

}

void consultar(){
   system("cls");
   int i;
   
   printf("Clientes Cadastrados:\n");
   for(i=0;i<qtdCliente;i++){

      printf("%d - %s \n", i, cliente[i].nome);

   }

}

void excluir(){
   system("cls");

   int id;

   printf("\n Informe o ID: ");
   fflush(stdin);
   scanf("%d", id);

   cliente[id].nome = "";
   cliente[id].ende.logradouro = "";
   cliente[id].ende.bairro = "";

   system("cls");
   printf("DADOS APAGADOS COM SUCESSO!");

}

void menu(){
     printf("\n 1 - Inserir");
     printf("\n 2 - Alterar");
     printf("\n 3 - Consultar");
     printf("\n 4 - Excluir");
     printf("\n 0 - Sair\n");
     scanf("%d",&opc);
}

int main(){

    do{
       menu();    
       switch (opc){
          case 1:
             inserir();
          break;
          case 2:
             alterar();
          break;
          case 3:
             consultar();
          break;
          case 4:
             excluir();
          break;
       }
    }while(opc!=0);

    system("pause");
    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom primeiro pela 81273891263786ª vz, n use fflush(stdin); tem um tópico especifico falando disso no nosso subfórum, artigo criado pelo VictorCacciari de uma procurada!

 

outra, para fazer oq você qr, ou use o strcpy ou o memset.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que por o & no scanf, amico.

Um exemplo só abaixo:

 

scanf("Informe seu Nome: ", &cliente[id].ende.logradouro);

Compartilhar este post


Link para o post
Compartilhar em outros sites

resolvido, muito obrigado pela ajuda...

 

o problema era o & comercial e utilizei o strcpy no alterar...

posta aqui o código atualizado funcionando eu sou novo em C , e queria esse código para eu estudar e me aprofundar meus conhecimentos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.