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; }