asantos38 Postado Dezembro 1, 2019 Denunciar Share Postado Dezembro 1, 2019 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 */ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 2, 2019 Denunciar Share Postado Dezembro 2, 2019 Use o tradutor do google nesses links https://www.google.com.br/search?source=hp&ei=fR_lXb3jKcOP0Abqsq_gAQ&q=2+duplicate+symbols+for+architecture+x86_64&o que=error+2+duplicate+symbols+for+architecture+x86_64&gs_l=psy-ab.1.0.0i333l3.1274.4216..11660...0.0..0.588.2198.1j4j4j5-1....1..0....1j2..gws-wiz.....0..0j0i131.FEpKhaxCuMI abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
asantos38
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.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.