Jump to content
Fórum Script Brasil

asantos38

Membros
  • Content Count

    46
  • Joined

  • Last visited

Community Reputation

0 Neutro

About asantos38

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. asantos38

    Mapeamento

    Boa noite a todos. Em que tipo de projeto C++ usa-se mapeamento? Desde já agradeço!
  2. Boa tarde! Estou trabalhando neste projeto e esse erro tem me tirado o sono. O projeto é um cadastro de petshop. E o erro parece estar associado a função limparBuffer(), mas sinceramente não sei como tirar esse bug. Estou usando xcode 11.2.1. Vou postar o código. // //main.c #include <stdio.h> #include <stdlib.h> #include "limpaBuf.h" #include "messages.h" #include "animal.h" #include "menu.h" int main(int argc, const char * argv[]) { Animal *cadastro; char escolha = '0'; cadastro = malloc(sizeof(Animal)); do { escolha = menu(); switch (escolha) { case '1': cadastro = cadastroGeral(); break; case '2': procurarAnimal(cadastro); break; default: break; } } while (escolha != '3'); return 0; } // // menu.c #include <stdio.h> #include <stdlib.h> #include "menu.h" #include "limpaBuf.h" char menu(void){ char escolha; system("clear"); printf("Cadastro de Animais\n\n\n"); printf("[1] -- Cadastrar\n"); printf("[2] -- Encontrar\n"); printf("[3] -- Sair\n"); printf("\n\n\n\n?: "); escolha = getchar(); limparBuffer(); return escolha; } #include <stdio.h> #include <stdlib.h> #include <string.h> #include "animal.h" #include "limpaBuf.h" #include "messages.h" Animal* cadastrarAnimal(void){ Animal* animal; system("clear"); printf("Cadastro de Animal\n\n\n"); animal = malloc(sizeof(Animal)); printf("Nome: "); fgets(animal->nome, sizeof(animal->nome), stdin); printf("Dono: "); fgets(animal->dono, sizeof(animal->dono), stdin); printf("Idade: "); scanf("%d", &animal->idade); limparBuffer(); printf("Raca: "); fgets(animal->raca, sizeof(animal->raca), stdin); animal->internado = false; animal->vacinado = false; return animal; } Animal* cadastroGeral(void){ Animal* animal; char escolha = 's'; int posicao_ponteiro = 0; animal = malloc(sizeof(Animal)); while (escolha == 's' || escolha == 'S') { if (posicao_ponteiro == 0) { animal = malloc(sizeof(Animal)); animal = cadastrarAnimal(); }else{ animal = realloc(animal, posicao_ponteiro * sizeof(Animal)); animal += posicao_ponteiro; animal = cadastrarAnimal(); } showMessage("Cadastro realizado com sucesso!"); printf("\n\nCadastrar outro? "); escolha = getchar(); limparBuffer(); if (escolha == 's' || escolha == 'S') { posicao_ponteiro++; } } return animal; } void procurarAnimal(Animal* cadastro){ char nome_animal[42]; int posicao_ponteiro = 0; int encontrado = 0; system("clear"); printf("Busca de Animal\n\n"); printf("Nome Animal: "); fgets(nome_animal, sizeof(nome_animal), stdin); system("clear"); while(cadastro) { if (strcmp(cadastro->nome, nome_animal) == 0) { encontrado = 1; break; }else{ posicao_ponteiro++; } cadastro += posicao_ponteiro; } if (encontrado == 1) { printf("Animal encontrado\n\n"); printf("Nome: %s\n", cadastro->nome); printf("Raça: %s\n", cadastro->raca); printf("Dono: %s\n", cadastro->dono); printf("Idade: %d\n", cadastro->idade); if (cadastro->vacinado == true) { printf("Vacinado: sim\n"); }else{ printf("Vacinado: não\n"); } if (cadastro->internado == true) { printf("Interno: sim\n"); }else{ printf("Interno: não\n"); } }else{ showMessage("Animal não cadastrado!"); } } // // messages.c #include <stdio.h> #include <stdlib.h> void showMessage(const char* msg){ int contador; system("clear"); for (contador = 1; contador <= 80; contador++) { printf("-"); if (contador == 80) { printf("\n"); } } printf("-"); for (contador = 1; contador <= 78; contador++) { printf(" "); } printf("-\n"); printf("-"); for (contador = 1; contador <= 78; contador++) { printf(" "); } printf("-\n"); printf("-"); for (contador = 1; contador < 25; contador++) { printf(" "); } printf("%s", msg); for (contador = 1; contador < 24; contador++) { printf(" "); } printf("-\n"); for (contador = 1; contador <= 78; contador++) { printf(" "); } printf("-\n"); printf("-"); for (contador = 1; contador <= 78; contador++) { printf(" "); } printf("-\n"); for (contador = 1; contador <= 80; contador++) { printf("-"); if (contador == 80) { printf("\n"); } } } // // limpaBuf.h #include <stdio.h> #ifndef limpaBuf_h #define limpaBuf_h void limparBuffer(){ char c; while ((c = getchar()) != '\n' && c != EOF) { } } #endif /* limpaBuf_h */
  3. Obrigado pela ajuda. Vou estudar seu código e continuar o trabalho. Abraços!
  4. asantos38

    cadastro de petshop

    Boa noite pessoal! Fiz um pequeno programa para cadastrar animais clientes de um petshop, mas há alguns erros que não estou conseguindo corrigir. Vou postar o código fonte e as mensagens de erro. Não é nenhum trabalho de facul ou trabalho do trabalho(rsrsrs). É apenas um hobby. Mas agradeço quem puder ajudar. #include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <string.h> #define limite 4 struct Animal{ char nome[15]; int idade; int registro; char cor[15]; char raca[15]; bool vacinado; }; struct Animal* cria_cadastro(int tamanho); void limpar_buffer(void); void cadastrar(struct Animal* cadastro, int tamanho); struct Animal* buscar(struct Animal* cadastro, int limite); int main(int argc, char* argv[]){ struct Animal* cadastro; char escolha = '0'; struct Animal* objeto_da_busca; cadastro = cria_cadastro(limite); do { printf("[1] - Cadastrar\n"); printf("[2] - Procurar\n"); printf("[3] - Encerrar Programa\n\n\n"); printf("Sua escolha? "); escolha = getchar(); switch (escolha) { case '1': cadastrar(cadastro, limite); break; case '2': if ((objeto_da_busca = buscar(cadastro, limite)) != NULL) { printf("Nome: %s\n", objeto_da_busca->nome); printf("Idade: %d\n", objeto_da_busca->idade); printf("Cor: %s\n", objeto_da_busca->cor); printf("Raça: %s\n", objeto_da_busca->raca); printf("Registro: %d\n", objeto_da_busca->registro); if (objeto_da_busca->vacinado == true) { printf("Vacinado: sim\n"); }else{ printf("Vacinado: não\n"); } }else{ printf("Animal não cadastrado.\n"); } break; case '3': printf("Encerrando o programa."); break; default: printf("Opção inválida.Tente novamente.\n"); } } while (escolha != '3'); return 0; } struct Animal* cria_cadastro(int tamanho){ struct Animal* cadastro; cadastro = (struct Animal*)malloc(sizeof(struct Animal) * tamanho); return cadastro; } void limpar_buffer(void){ char c; while((c = getchar()) != '\n' && c != EOF){}; } void cadastrar(struct Animal* cadastro, int tamanho){ int contador = 0; static int rg; char continuar; do { system("clear"); printf("Cadastro de Animal\n\n"); printf("Nome: "); fgets(cadastro[contador].nome, 15, stdin); printf("Idade: "); scanf("%d", cadastro[contador].idade); limpar_buffer(); printf("Cor: "); fgets(cadastro[contador].cor, 15, stdin); printf("Raça: "); fgets(cadastro[contador].raca, 15, stdin); cadastro[contador].registro = rg++; contador++; printf("\n\n\n\ncadastrar outro animal? "); continuar = getchar(); } while (contador < tamanho && (continuar != 'n' && continuar != 'N')); } struct Animal* buscar(struct Animal* cadastro, int limite){ char nome_pesquisa[15]; int contador; struct Animal* retorno = NULL; system("clear"); printf("Busca de Animal\n\n"); printf("Nome Animal: "); fgets(nome_pesquisa, 15, stdin); for (contador = 0; contador < limite; contador++) { if (strcmp(cadastro[contador]->nome, nome_pesquisa) == 0) { retorno = cadastro[contador]; } } return retorno; } Last login: Thu Sep 12 19:55:56 on console MacBook-Air-de-Angelo:~ angelo$ cd Documents/C MacBook-Air-de-Angelo:C angelo$ ls -l total 0 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 Listas3 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 acme drwxr-xr-x 4 angelo staff 128 8 Set 23:00 arquivos1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 arquivos2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 arquivos3 drwxr-xr-x 5 angelo staff 160 19 Ago 20:39 arquivos4 drwxr-xr-x 5 angelo staff 160 8 Set 23:00 arquivos5 drwxr-xr-x 3 angelo staff 96 8 Set 23:00 arquivos6 drwxr-xr-x 3 angelo staff 96 12 Set 20:59 arquivos7 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula3 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula4 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula5 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 cadastro drwxr-xr-x 4 angelo staff 128 8 Set 23:00 categoria jogador drwxr-xr-x 4 angelo staff 128 8 Set 23:00 classifica_pessoa drwxr-xr-x 4 angelo staff 128 30 Jul 20:07 cls drwxr-xr-x 4 angelo staff 128 8 Set 23:00 colisao drwxr-xr-x 4 angelo staff 128 8 Set 23:00 colisao2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 contador drwxr-xr-x 4 angelo staff 128 8 Set 23:00 contagem regressiva drwxr-xr-x 4 angelo staff 128 8 Set 23:00 contagem regressiva2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 conversao drwxr-xr-x 4 angelo staff 128 8 Set 23:00 conversao2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 cript drwxr-xr-x 4 angelo staff 128 8 Set 23:00 decisao multipla drwxr-xr-x 4 angelo staff 128 8 Set 23:00 decisao simples drwxr-xr-x 4 angelo staff 128 8 Set 23:00 decisao simples2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 dobro de um numero drwxr-xr-x 4 angelo staff 128 8 Set 23:00 dobro de um numero2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 estrutura drwxr-xr-x 4 angelo staff 128 8 Set 23:00 fila ex1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 funcao soma drwxr-xr-x 4 angelo staff 128 8 Set 23:00 funcao soma2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 idade drwxr-xr-x 4 angelo staff 128 8 Set 23:00 idade_pelo_nascimento drwxr-xr-x 4 angelo staff 128 8 Set 23:00 idade_pelo_nascimento2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 imc drwxr-xr-x 4 angelo staff 128 8 Set 23:00 imc2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 imc3 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 insercao qualquer drwxr-xr-x 4 angelo staff 128 8 Set 23:00 inseri_final drwxr-xr-x 4 angelo staff 128 8 Set 23:00 inserindo_inicio drwxr-xr-x 4 angelo staff 128 8 Set 23:00 jogos_megasenha drwxr-xr-x 4 angelo staff 128 8 Set 23:00 listas ligadas ex1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 listas ligadas ex2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 listas ligadas ex3 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 listas ligadas ex4 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 listas2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 listas4 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 listas5 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 listas6 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 loops esccrevendo fatec3 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 loops escrevendo FATEC drwxr-xr-x 4 angelo staff 128 8 Set 23:00 loops escrevendo FATEC2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 maior de dois drwxr-xr-x 4 angelo staff 128 8 Set 23:00 matrizes drwxr-xr-x 4 angelo staff 128 8 Set 23:00 matrizes2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 matrizes3 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 menu times drwxr-xr-x 4 angelo staff 128 8 Set 23:00 pilha1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 pilha2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 pilha3 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 pilha4 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 pilha5 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 ponteiros_e_vetores_1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 problema das xerox drwxr-xr-x 4 angelo staff 128 8 Set 23:00 projeto1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 projeto2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 senha_sem_enter drwxr-xr-x 4 angelo staff 128 8 Set 23:00 soma drwxr-xr-x 4 angelo staff 128 8 Set 23:00 tabuada de cinco drwxr-xr-x 4 angelo staff 128 8 Set 23:00 tabuada de numero qualquer drwxr-xr-x 4 angelo staff 128 8 Set 23:00 teste1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 tipos drwxr-xr-x 4 angelo staff 128 8 Set 23:00 usando enums drwxr-xr-x 4 angelo staff 128 8 Set 23:00 usando typedef drwxr-xr-x 4 angelo staff 128 8 Set 23:00 usando typedef2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 valida_entrada drwxr-xr-x 4 angelo staff 128 8 Set 23:00 vetor_numeros_nao_repetidos MacBook-Air-de-Angelo:C angelo$ clear MacBook-Air-de-Angelo:C angelo$ ls -l\more total 0 drwxr-xr-x 4 angelo 128 8 Set 23:00 vetor_numeros_nao_repetidos drwxr-xr-x 4 angelo 128 8 Set 23:00 valida_entrada drwxr-xr-x 4 angelo 128 8 Set 23:00 usando typedef2 drwxr-xr-x 4 angelo 128 8 Set 23:00 usando typedef drwxr-xr-x 4 angelo 128 8 Set 23:00 usando enums drwxr-xr-x 4 angelo 128 8 Set 23:00 tipos drwxr-xr-x 4 angelo 128 8 Set 23:00 teste1 drwxr-xr-x 4 angelo 128 8 Set 23:00 tabuada de numero qualquer drwxr-xr-x 4 angelo 128 8 Set 23:00 tabuada de cinco drwxr-xr-x 4 angelo 128 8 Set 23:00 soma drwxr-xr-x 4 angelo 128 8 Set 23:00 senha_sem_enter drwxr-xr-x 4 angelo 128 8 Set 23:00 projeto2 drwxr-xr-x 4 angelo 128 8 Set 23:00 projeto1 drwxr-xr-x 4 angelo 128 8 Set 23:00 problema das xerox drwxr-xr-x 4 angelo 128 8 Set 23:00 ponteiros_e_vetores_1 drwxr-xr-x 4 angelo 128 8 Set 23:00 pilha5 drwxr-xr-x 4 angelo 128 8 Set 23:00 pilha4 drwxr-xr-x 4 angelo 128 8 Set 23:00 pilha3 drwxr-xr-x 4 angelo 128 8 Set 23:00 pilha2 drwxr-xr-x 4 angelo 128 8 Set 23:00 pilha1 drwxr-xr-x 4 angelo 128 8 Set 23:00 menu times drwxr-xr-x 4 angelo 128 8 Set 23:00 matrizes3 drwxr-xr-x 4 angelo 128 8 Set 23:00 matrizes2 drwxr-xr-x 4 angelo 128 8 Set 23:00 matrizes drwxr-xr-x 4 angelo 128 8 Set 23:00 maior de dois drwxr-xr-x 4 angelo 128 8 Set 23:00 loops escrevendo FATEC2 drwxr-xr-x 4 angelo 128 8 Set 23:00 loops escrevendo FATEC drwxr-xr-x 4 angelo 128 8 Set 23:00 loops esccrevendo fatec3 drwxr-xr-x 4 angelo 128 8 Set 23:00 listas6 drwxr-xr-x 4 angelo 128 8 Set 23:00 listas5 drwxr-xr-x 4 angelo 128 8 Set 23:00 listas4 drwxr-xr-x 4 angelo 128 8 Set 23:00 listas2 drwxr-xr-x 4 angelo 128 8 Set 23:00 listas ligadas ex4 drwxr-xr-x 4 angelo 128 8 Set 23:00 listas ligadas ex3 drwxr-xr-x 4 angelo 128 8 Set 23:00 listas ligadas ex2 drwxr-xr-x 4 angelo 128 8 Set 23:00 listas ligadas ex1 drwxr-xr-x 4 angelo 128 8 Set 23:00 jogos_megasenha drwxr-xr-x 4 angelo 128 8 Set 23:00 inserindo_inicio drwxr-xr-x 4 angelo 128 8 Set 23:00 inseri_final drwxr-xr-x 4 angelo 128 8 Set 23:00 insercao qualquer drwxr-xr-x 4 angelo 128 8 Set 23:00 imc3 drwxr-xr-x 4 angelo 128 8 Set 23:00 imc2 drwxr-xr-x 4 angelo 128 8 Set 23:00 imc drwxr-xr-x 4 angelo 128 8 Set 23:00 idade_pelo_nascimento2 drwxr-xr-x 4 angelo 128 8 Set 23:00 idade_pelo_nascimento drwxr-xr-x 4 angelo 128 8 Set 23:00 idade drwxr-xr-x 4 angelo 128 8 Set 23:00 funcao soma2 drwxr-xr-x 4 angelo 128 8 Set 23:00 funcao soma drwxr-xr-x 4 angelo 128 8 Set 23:00 fila ex1 drwxr-xr-x 4 angelo 128 8 Set 23:00 estrutura drwxr-xr-x 4 angelo 128 8 Set 23:00 dobro de um numero2 drwxr-xr-x 4 angelo 128 8 Set 23:00 dobro de um numero drwxr-xr-x 4 angelo 128 8 Set 23:00 decisao simples2 drwxr-xr-x 4 angelo 128 8 Set 23:00 decisao simples drwxr-xr-x 4 angelo 128 8 Set 23:00 decisao multipla drwxr-xr-x 4 angelo 128 8 Set 23:00 cript drwxr-xr-x 4 angelo 128 8 Set 23:00 conversao2 drwxr-xr-x 4 angelo 128 8 Set 23:00 conversao drwxr-xr-x 4 angelo 128 8 Set 23:00 contagem regressiva2 drwxr-xr-x 4 angelo 128 8 Set 23:00 contagem regressiva drwxr-xr-x 4 angelo 128 8 Set 23:00 contador drwxr-xr-x 4 angelo 128 8 Set 23:00 colisao2 drwxr-xr-x 4 angelo 128 8 Set 23:00 colisao drwxr-xr-x 4 angelo 128 30 Jul 20:07 cls drwxr-xr-x 4 angelo 128 8 Set 23:00 classifica_pessoa drwxr-xr-x 4 angelo 128 8 Set 23:00 categoria jogador drwxr-xr-x 4 angelo 128 8 Set 23:00 cadastro drwxr-xr-x 4 angelo 128 8 Set 23:00 aula5 drwxr-xr-x 4 angelo 128 8 Set 23:00 aula4 drwxr-xr-x 4 angelo 128 8 Set 23:00 aula3 drwxr-xr-x 4 angelo 128 8 Set 23:00 aula2 drwxr-xr-x 4 angelo 128 8 Set 23:00 aula1 drwxr-xr-x 3 angelo 96 12 Set 20:59 arquivos7 drwxr-xr-x 3 angelo 96 8 Set 23:00 arquivos6 drwxr-xr-x 5 angelo 160 8 Set 23:00 arquivos5 drwxr-xr-x 5 angelo 160 19 Ago 20:39 arquivos4 drwxr-xr-x 4 angelo 128 8 Set 23:00 arquivos3 drwxr-xr-x 4 angelo 128 8 Set 23:00 arquivos2 drwxr-xr-x 4 angelo 128 8 Set 23:00 arquivos1 drwxr-xr-x 4 angelo 128 8 Set 23:00 acme drwxr-xr-x 4 angelo 128 8 Set 23:00 Listas3 MacBook-Air-de-Angelo:C angelo$ clear MacBook-Air-de-Angelo:C angelo$ ls -l | more total 0 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 Listas3 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 acme drwxr-xr-x 4 angelo staff 128 8 Set 23:00 arquivos1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 arquivos2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 arquivos3 drwxr-xr-x 5 angelo staff 160 19 Ago 20:39 arquivos4 drwxr-xr-x 5 angelo staff 160 8 Set 23:00 arquivos5 drwxr-xr-x 3 angelo staff 96 8 Set 23:00 arquivos6 drwxr-xr-x 3 angelo staff 96 12 Set 20:59 arquivos7 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula1 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula3 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula4 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 aula5 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 cadastro drwxr-xr-x 4 angelo staff 128 8 Set 23:00 categoria jogador drwxr-xr-x 4 angelo staff 128 8 Set 23:00 classifica_pessoa drwxr-xr-x 4 angelo staff 128 30 Jul 20:07 cls drwxr-xr-x 4 angelo staff 128 8 Set 23:00 colisao drwxr-xr-x 4 angelo staff 128 8 Set 23:00 colisao2 drwxr-xr-x 4 angelo staff 128 8 Set 23:00 contador drwxr-xr-x 4 angelo staff 128 8 Set 23:00 contagem regressiva MacBook-Air-de-Angelo:C angelo$ cd arquivos7 MacBook-Air-de-Angelo:arquivos7 angelo$ clear MacBook-Air-de-Angelo:arquivos7 angelo$ ls -l total 8 [email protected] 1 angelo staff 3559 12 Set 20:59 main.c MacBook-Air-de-Angelo:arquivos7 angelo$ nano main.c MacBook-Air-de-Angelo:arquivos7 angelo$ gcc -o main main.c main.c:23:52: error: expected ')' struct Animal* buscar(struct Animal* cadastro, int limite); ^ main.c:6:16: note: expanded from macro 'limite' #define limite 4 ^ main.c:23:22: note: to match this '(' struct Animal* buscar(struct Animal* cadastro, int limite); ^ main.c:97:33: error: member reference type 'struct Animal' is not a pointer; did you mean to use '.'? fgets(cadastro[contador]->nome, 15, stdin); ~~~~~~~~~~~~~~~~~~^~ . main.c:100:39: error: member reference type 'struct Animal' is not a pointer; did you mean to use '.'? scanf("%d", cadastro[contador]->idade); ~~~~~~~~~~~~~~~~~~^~ . main.c:100:21: warning: format specifies type 'int *' but the argument has type 'int' [-Wformat] scanf("%d", cadastro[contador]->idade); ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~ main.c:105:33: error: member reference type 'struct Animal' is not a pointer; did you mean to use '.'? fgets(cadastro[contador]->cor, 15, stdin); ~~~~~~~~~~~~~~~~~~^~ . main.c:108:33: error: member reference type 'struct Animal' is not a pointer; did you mean to use '.'? fgets(cadastro[contador]->raca, 15, stdin); ~~~~~~~~~~~~~~~~~~^~ . main.c:110:27: error: member reference type 'struct Animal' is not a pointer; did you mean to use '.'? cadastro[contador]->registro = rg++; ~~~~~~~~~~~~~~~~~~^~ . main.c:110:38: error: expression is not assignable cadastro[contador]->registro = rg++; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ main.c:122:52: error: expected ')' struct Animal* buscar(struct Animal* cadastro, int limite){ ^ main.c:6:16: note: expanded from macro 'limite' #define limite 4 ^ main.c:122:22: note: to match this '(' struct Animal* buscar(struct Animal* cadastro, int limite){ ^ main.c:122:52: error: parameter name omitted struct Animal* buscar(struct Animal* cadastro, int limite){ ^ main.c:6:16: note: expanded from macro 'limite' #define limite 4 ^ main.c:135:38: error: member reference type 'struct Animal' is not a pointer; did you mean to use '.'? if (strcmp(cadastro[contador]->nome, nome_pesquisa) == 0) { ~~~~~~~~~~~~~~~~~~^~ . main.c:136:21: error: assigning to 'struct Animal *' from incompatible type 'struct Animal'; take the address with & retorno = cadastro[contador]; ^ ~~~~~~~~~~~~~~~~~~ & 1 warning and 11 errors generated. MacBook-Air-de-Angelo:arquivos7 angelo$ clear MacBook-Air-de-Angelo:arquivos7 angelo$ gcc -o main main.c main.c:23:52: error: expected ')' struct Animal* buscar(struct Animal* cadastro, int limite); ^ main.c:6:16: note: expanded from macro 'limite' #define limite 4 ^ main.c:23:22: note: to match this '(' struct Animal* buscar(struct Animal* cadastro, int limite); ^ main.c:100:21: warning: format specifies type 'int *' but the argument has type 'int' [-Wformat] scanf("%d", cadastro[contador].idade); ~~ ^~~~~~~~~~~~~~~~~~~~~~~~ main.c:122:52: error: expected ')' struct Animal* buscar(struct Animal* cadastro, int limite){ ^ main.c:6:16: note: expanded from macro 'limite' #define limite 4 ^ main.c:122:22: note: to match this '(' struct Animal* buscar(struct Animal* cadastro, int limite){ ^ main.c:122:52: error: parameter name omitted struct Animal* buscar(struct Animal* cadastro, int limite){ ^ main.c:6:16: note: expanded from macro 'limite' #define limite 4 ^ main.c:135:38: error: member reference type 'struct Animal' is not a pointer; did you mean to use '.'? if (strcmp(cadastro[contador]->nome, nome_pesquisa) == 0) { ~~~~~~~~~~~~~~~~~~^~ . main.c:136:21: error: assigning to 'struct Animal *' from incompatible type 'struct Animal'; take the address with & retorno = cadastro[contador]; ^ ~~~~~~~~~~~~~~~~~~ & 1 warning and 5 errors generated. MacBook-Air-de-Angelo:arquivos7 angelo$
  5. Boa noite a todos. Estou tentando gravar uma struct em um arquivo, mas toda vez que executo, o arquivo continua vazio. Estou usando o xcode em mac air. E já verifiquei se o arquivo tem as permissões exigidas. Segue o código: // // main.c // arquivos3 // #include <stdio.h> #include <stdlib.h> struct Pessoa{ char nome[20]; unsigned int idade; float altura; }; int main(int argc, const char * argv[]) { // insert code here... FILE* ptr; char* filename = "arq_teste.dat"; char* modo_gravacao = "w"; struct Pessoa pessoa = {"Fernando Santos", 42, 1.75}; //Abre o arquivo para gravação; se ocorrer erro o programa aborta. if ((ptr = fopen(filename, modo_gravacao)) == NULL) { puts("Erro ao abrir o arquivo!"); exit(1); } fwrite(&pessoa, sizeof(struct Pessoa), 1, ptr); fclose(ptr); return 0; }
  6. Boa noite.Segue aqui uma pequena classe vetor. Aceito críticas e sugestões. // // vetor.cpp // vetor // #include <iostream> #include <cstdlib> #include <stdio.h> #include "vetor.h" using namespace std; // Construtor. Vetor::Vetor(void){ tamanho = 0; valores = (int*)malloc(sizeof(int)); } void Vetor::incluir(int novo){ if (tamanho == 0) { *(valores + tamanho) = novo; tamanho++; }else{ valores = (int*)realloc(valores, sizeof(int) * (tamanho + 1)); *(valores + tamanho) = novo; tamanho++; } } void Vetor::ordenar_crescente(void){ int temp; for (int i = 0; i < tamanho - 1; i++) { for (int j = i + 1; j < tamanho; j++) { if (*(valores + i) > *(valores + j)) { temp = *(valores + i); *(valores + i) = *(valores + j); *(valores + j) = temp; } } } } void Vetor::imrimir(void){ for (int contador = 0; contador < tamanho; contador++) { cout << contador + 1 << "o. elemento -> " << *(valores + contador) << endl; } } main.cpp: // // main.cpp // vetor // #include <iostream> #include "vetor.h" using namespace std; int main(int argc, const char * argv[]) { // declaração de objetos. Vetor vetor; vetor.incluir(30); vetor.incluir(50); vetor.incluir(40); vetor.incluir(20); vetor.incluir(10); vetor.ordenar_crescente(); vetor.imrimir(); return 0; }
  7. Bom dia a todos. Quando executo o código abaixo só imprime o valor armazenado no primeiro nó. A função insere o nó no início da lista. Estou usando Xcode em um macbook Air. Alguém sabe qual o bug? #include <stdio.h> #include <stdlib.h> // definição do tipo Lista. struct Lista{ int valor; struct Lista * proximo; }; // função insere_iniciio(). struct Lista* insere_inicio(struct Lista* n, int valor){ // declaração de variáveis. struct Lista* novo; if (n == NULL) { // se a lista estiver vazia. n = (struct Lista*)malloc(sizeof(struct Lista)); n->valor = valor; n->proximo = NULL; // por ser o primeiro nó não deve apontar. return n; }else{ // se a lista não estiver vazia. novo = (struct Lista*)malloc(sizeof(struct Lista)); novo->valor = valor; novo->proximo = n; return novo; } } int main(){ // declaração de variáveis. int valor; struct Lista* inicio; struct Lista* novo; struct Lista* temp; // aloca memória para a lista. inicio = (struct Lista*)malloc(sizeof(struct Lista)); // inicializa a estrutura. inicio->valor = 20; inicio->proximo = NULL; // limpa o console. system("clear"); printf("Informe o valor para armazenar na lista: "); scanf("%d", &valor); // chamada para a função insere_inicio(). novo = insere_inicio(inicio, valor); temp = novo; while (temp->proximo != NULL) { printf("Valor armazenado: %d\n", temp->valor); temp = temp->proximo; } return 0; }
  8. Programa que calcula o perímetro de triângulo. Recebe como dados de entrada as coordenadas dos vértices do triângulo e retorna o perímetro na unidade de medida escolhida. #include <stdio.h> #include <stdlib.h> #include <math.h> //definição do tipo Ponto. struct Ponto{ float x; float y; }; typedef struct Ponto PONTO; //definição da estrutura Triangulo com vértices do tipo PONTO. struct Triangulo{ //Vértices do triângulo. PONTO p[3]; }; typedef struct Triangulo TRIANGULO; //definição da função gerarTriangulo, que retorna uma estrutura do tipo //TRIANGULO. TRIANGULO gerarTriangulo(){ //variáveis. TRIANGULO tr; int contador; //Limpa a tela. system("cls"); //Entrada das coordenadas dos vértices do triângulo. for(contador = 0; contador < 3; contador++){ printf("Obtendo p%i:\n", contador + 1); printf("Abscissa: "); scanf("%f%*c", &tr.p[contador].x); printf("Ordenada: "); scanf("%f%*c", &tr.p[contador].y); } return tr; } float perimetro(TRIANGULO t){ //declaração de variáveis. float d1, d2, d3; //Cálculo do tamanho dos lados do triângulo. d1 = sqrt(pow(t.p[0].x - t.p[1].x, 2) + pow(t.p[0].y - t.p[1].y, 2)); d2 = sqrt(pow(t.p[0].x - t.p[2].x, 2) + pow(t.p[0].y - t.p[2].y, 2)); d3 = sqrt(pow(t.p[1].x - t.p[2].x, 2) + pow(t.p[1].y - t.p[2].y, 2)); //Retorno da soma dos lados que é o perímetro do triângulo. return d1 + d2 + d3; } int main(){ //Declaração de variáveis. char unidade_medida; system("cls"); //Solicita um tipo de unidade de medida até que o usuário escolha uma das opções //válidas. do{ printf("Escolha a unidade de medida: \n"); printf("c - centimetros, m - metros: "); scanf("%c%*c", &unidade_medida); }while(unidade_medida != 'c' && unidade_medida != 'm'); //Exibe o resultado de acordo com a unidade de medida escolhida. //Considera até três casas decimais. switch(unidade_medida){ case 'c': printf("O perimetro do triangulo e: %.3f cm.\n", perimetro(gerarTriangulo())); break; case 'm': printf("O perimetro do triangulo e: %.3f m.\n", perimetro(gerarTriangulo())); } return 0; }
  9. Boa tarde, galera! Fiz um pequeno programa de cadastro de pessoas e percebi que quando exibo as pessoas cadastradas o último registro gravado está duplicado. Estou usando win10 e o compilador é o minGW. segue o código: #include <stdio.h> #include <stdlib.h> #include <string.h> struct Pessoa{ char nome[30]; int idade; }; void pausa(){ printf("pressione qualquer tecla para voltar ao menu principal\n"); scanf("%*c"); } void limpar_buffer(){ scanf("%*[^\n]"); scanf("%*c"); } void cadastrar(){ FILE* fp; struct Pessoa p; char escolha = 's'; do{ system("cls"); printf("Rotina de cadastro\n\n\n"); printf("Nome: "); fgets(p.nome, 30, stdin); printf("Idade: "); scanf("%d%*c", &p.idade); fp = fopen("cadastro.dat", "ab"); fwrite(&p, sizeof(p), 1, fp); fclose(fp); system("cls"); printf("Cadastro realizado com sucesso!\n"); printf("\n\n\nCadastrar outro?: "); escolha = getchar(); limpar_buffer(); }while(escolha != 'n' && escolha != 'N'); } void exibir(){ FILE* fp; struct Pessoa p; int total = 0; system("cls"); printf("Relacao de cadastrados\n\n\n"); fp = fopen("cadastro.dat", "rb"); while(!feof(fp)){ fread(&p, sizeof(p), 1, fp); total++; printf("Nome: %s\n", p.nome); printf("Idade: %d\n", p.idade); printf("-----------------------------------------\n"); } fclose(fp); printf("Numero de cadastrados: %d\n", total); pausa(); } int menu(){ int m; system("cls"); printf("Menu principal\n\n\n"); printf("[1] - Cadastrar\n"); printf("[2] - Relacao cadastrados\n"); printf("[3] - Sair\n"); printf("\n\n\n?: "); scanf("%d%*c", &m); return m; } int main(){ //declaração de variáveis. int escolha = 0; do{ escolha = menu(); switch(escolha){ case 1:cadastrar(); break; case 2:exibir(); } }while(escolha != 3); return 0; }
  10. asantos38

    IDE Builder

    Tudo bem.Mas agradeço pelo seu interesse em ajudar.
  11. asantos38

    IDE Builder

    Boa noite a todos. Instalei alguns meses atrás o Builder, uma IDE que faz parte dos pacotes que podem ser instalados no Ubuntu 18.04, porém não consigo executar programas nele. estou fazendo assim: Crio um projeto; python por exemplo. E dentro da pasta 'src' crio um arquivo .py Criei uma janela simples com tkinter, mas quando executo o projeto não aparece nada, e a execução é interrompida. Na internet quase não se encontra material sobre o Builder, para não dizer nenhum! Desde já agradeço!
  12. Boa noite, Britivaldo. Fiz as correções que você mandou e o programa compilou e rodou legal. Obrigado! Abraços!
  13. Boa noite a todos. Estou tentando fazer um pequeno programa de cadastro, mas meu código contém erros que não estou conseguindo resolver. segue o código e a mensagem de erro: main.c: #include <stdio.h> #include <stdlib.h> #include "pessoa.h" int main(){ struct Pessoa pessoas[3]; int limite; for(limite = 0; limite < 3; limite++){ system("clear"); printf("Cadastrando a %da. pessoa\n\n", limite + 1); pessoas[limite] = gerarPessoa(); } //exibe as pessoas. exibirPessoa(pessoas, 3); return 0; } pessoa.h: #ifndef PESSOA_H_INCLUDED #define PESSOA_H_INCLUDED //definição de tipo. struct Pessoa{ char nome[45]; int idade; float altura; }; struct Pessoa gerarPessoa(); void exibirPessoa(struct Pessoa*, int); #endif pessoa.c: #include <stdio.h> #include <stdlib.h> #include "pessoa.h" struct Pessoa gerarPessoa(){ //declaração de variáveis. struct Pessoa pessoa; //system("clear"); printf("Nome: "); scanf("%[^\n]s", pessoa.nome); printf("Idade: "); scanf("%d%*c", &pessoa.idade); printf("Altura: "); scanf("%f%*c", &pessoa.altura); return pessoa; } void exibirPessoa(struct Pessoa* pessoa, int tamanho){ int contador; system("clear"); for(contador = 0; contador < tamanho; contador++){ printf("Nome: %s\n", *(pessoa + contador)->nome); printf("Idade: %d\n", *(pessoa + contador)->idade); printf("Altura: %.2f\n\n", *(pessoa + contador)->altura); } } erro: pessoa.c: In function ‘exibirPessoa’: pessoa.c:29:18: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=] printf("Nome: %s\n", *(pessoa + contador)->nome); ~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~ %d pessoa.c:31:25: error: invalid type argument of unary ‘*’ (have ‘int’) printf("Idade: %d\n", *(pessoa + contador)->idade); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ pessoa.c:33:30: error: invalid type argument of unary ‘*’ (have ‘float’) printf("Altura: %.2f\n\n", *(pessoa + contador)->altura); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ Desde já agradeço.
  14. Poste seu código usando o botão <>. Assim fica mais fácil de te ajudar. Outra forma é usando o método getline() de cin: #include <iostream> using namespace std; int main(){ char palavra[20]; cout << "Escreva uma palavra: "; //Este trecho do código recebe sua palavra e armazena na variável palavra. cin.getline(palavra, 20); return 0; } O método getline() possui dois argumentos: o primeiro é a variável onde será armazenada a palavra e o segundo é o tamanho do vetor de caracteres. Não esqueça que o tamanho do vetor de caracteres deve ter um caractere a mais para o ' \0 '. Exemplo: se você quer armazenar 10 caracteres deve fazer " char palavra[11]; "
  15. Boa tarde Alex. Acredito que seja algo assim: #include <iostream> using namespace std; int main(){ //declaração de variável. char palavra[] = "Digite aqui sua palavra"; //aí para usar a variável você pode fazer assim. cout << palavra << endl; return 0; } Se resolver seu problema coloque resolvido em seu post. Beleza?
×
×
  • Create New...