Para exercitar o que aprendemos nas últimas aulas sobre typedef struct em nosso Curso de Programação C, vamos construir o tipo ELETRÔNICO com TYPEDEF STRUCT.
O primeiro passo para elaborar um novo tipo de dado é definir quais informações ele terá. Nosso tipo Eletrônico terá os seguintes campos:
– tipo (um vetor de caracteres)
– marca (um vetor de caracteres)
– modelo (um vetor de caracteres)
– descrição (um vetor de caracteres)
– eficiência energética (um caracter)
– quantidade (um inteiro)
– código (um inteiro)
Observe que estes campos são apenas algumas sugestões. Outros campos podem ser adicionados, como por exemplo, preço, garantia, dentro outros.
Para criar o tipo Eletrônico, basta inserir os tipos primitivos de cada campo dentro da estrutura de typedef struct, assim:
typedef struct{
char tipo[100];
char marca[50];
char modelo[25];
char energia;
char descricao[500];
int quantidade;
int codigo;
}Eletronico;
A seguir temos o código completo em C para ler um Eletrônico do teclado e imprimir na tela as informações digitadas.
#include <stdio.h>
#include <stdlib.h>
/*
Aula 176: Como construir o tipo eletrônico com typedef struct?
Código escrito por Wagner Gaspar
Abril de 2021
/*
typedef struct{
char tipo[100];
char marca[50];
char modelo[25];
char energia;
char descricao[500];
int quantidade;
int codigo;
}Eletronico;
// procedimento que imprime as informações de um Eletrônico
void imprimirEletronico(Eletronico e){
printf("\tTipo: %s", e.tipo);
printf("\tMarca: %s", e.marca);
printf("\tModelo: %s", e.modelo);
printf("\tEnergia: %c\tQuantidade: %d\n", e.energia, e.quantidade);
printf("\tDescricao: %s", e.descricao);
}
// função que lê os dados de um eletrônico e retorna para quem chamou
Eletronico lerEletronico(){
Eletronico e;
printf("Digite o tipo: ");
fgets(e.tipo, 100, stdin);
printf("Marca: ");
fgets(e.marca, 50, stdin);
printf("Modelo: ");
fgets(e.modelo, 25, stdin);
printf("Eficiencia energetica: ");
scanf("%c", &e.energia);
scanf("%c");
printf("Descricao: ");
fgets(e.descricao, 500, stdin);
printf("Quantidade e codigo: ");
scanf("%d%d", &e.quantidade, &e.codigo);
return e;
}
int main() {
Eletronico ele;
ele = lerEletronico();
imprimirEletronico(ele);
return 0;
}
