Ir ao conteúdo
  • Cadastre-se
multidrif

Error no uso do struct

Recommended Posts

Não consigo prosseguir com o meu trabalho por causa desse erro,

alguém poderia me ajudar? :D

 linha que acusa o erro >>>> gets(Cliente.nome);

error: expected expression before 'Cliente'

#include <stdio.h>
#include <stdlib.h>

typedef struct Endereco{
    char bairro[15];
    char rua[10];
    int numero;
    int cep;
}Endereco;

typedef struct Empresa{
    char nomeEmpr[25];
    float saldo;
    int codigo;
}Empresa;

typedef struct Pessoa{
    char nome[25];
    int cpf;
    int fone;
    Endereco ende;
    Empresa empr;
}Cliente;

int main(){

    printf("Digite o nome do cliente: ");
        gets(Cliente.nome);

    system("pause");
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim?

 

adicionado 2 minutos depois

Entendi, declarar uma variável do tipo cliente! kkkk valeu mano deu SUPER CERTO :D

:D

Ficou assim a main.

int main(){

    Cliente a;

    printf("Digite o nome do cliente: ");
        gets(a.nome);

    system("pause");
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@multidrif Pelo o que eu entendi você programou um objeto chamado Cliente, que tem nome, endereço, cpf, etc.

E no main você tenta armazenar as informações sem antes ter criado um Cliente para recebê-las.

 

Antes do printf do main crie um cliente, algo assim "struct Cliente beltrano;" aí no gets você coloca "gets(beltrano.nome);"

 

Não sei se vai funcionar porque não conheço tanto C, mas tenta aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

gets da problema porque você ta tentando fazer algo como: gets(int.nome). você esta criando um novo tipo de dado com typedef struct Pessoa{...} Cliente, Cliente agora é um tipo de dado como int ou float, só que um tipo de dado composto por otros tipos de dados, como bem te aconselharam você deve declarar primeiro um objeto desse tipo, pois declarando o objeto é quando se faz a reserva de memória, e não quando definimos um tipo de dado.

 

typedef struct Pessoa{...} Cliente é o mesmo que dizer: Defino um novo tipo de dados que vai se chamar Cliente e que é do tipo struct Pessoa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×