Ir ao conteúdo
  • Cadastre-se

MarcosAMS

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

1
  1. Boa tarde.Gostaria de saber se existe alguma maneira de converter um arquivo de packet tracer para uma versão anterior do que foi feito, fizemos um trabalho acadêmico na versão packet tracer 7 mas o professor trabalha com versão 5 e da erro de compatibilidade. Muito Obrigado.
  2. entendi legal, vou testar, a questão da importação de lixo de memoria eu consegui resolver, na verdade o problema estava na hora de gerar o arquivo, estava nos tabs (\t), a ultima linha do meu arquivo não pode ter tab por isso que eu já tinha colocado um if: if (aux==fim) fprintf(FPTR,"%d",p->tel); else fprintf(FPTR,"%d\t",p->tel); só que mesmo assim na ultima linha ele gerava esse tab, então me deu na cabeça de mudar o while (aux) {} para do{}while (aux); não explicar porque mas deu certo Mauro é isso mesmo que você falou, deu certo, agora está funcionando ok, muito obrigado.
  3. Bom dia, eu estou precisando de uma ajuda, estou me "querando em um codigo para uma agensa telefonica, eu preciso criar cadastro, imprimir na tela, alterar remover, gerar e imporar um arquivo txt, Meu problema está no txt. 1º na hora de gerar no cadastro eu tenho um loop caso o usuario queira cadastar mais de 1 contato, não opção imprimir na tela mostra todos normais, mas na hora de gerar o arquivo vou usar um exemplo eu crio 4 contatos diferentes, o arquivo txt gera 4 contatos mas todos são iguais e do ultimo contato que eu criei. 2º para importar o txt, ele carrega o arquivo carrega todos os contatos salvos, na hora de imprimir na tela, ele imprimi o que tem no TXT (mesmo sendo tudo repitido) só que ele imprimi umas linhas adicionais cheia de lixo de memoria (as vezes dados sem sentido, comandos cmd, eneredeços de pastas, etc.). Desde já agradeço a ajuda. Segue o codigo: #include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>//struct do cadastrostruct agenda{ int id; char nome [20]; char snome [20]; int tel; struct agenda *prox;};//ponteiros globaisstruct agenda *p=NULL;struct agenda *topo=NULL;struct agenda *fim=NULL;struct agenda *aux=NULL;//variaveis globaisint opcao;int codid,loc,loca;char insert;//funçõesint inserir(); // inserir dadosint imprimir(); //imprimir dados na telaint alterar(); // localizar dado para alterarint remover(); // localizar e remover dadoint gerararquivo(); // gerar um txtint importararquivo(); //importar um txtint main (){ while (opcao!=7) //menu 7 Sai do programa { printf (" Agenda Telefonica \n"); printf ("[1]-Inserir \n"); printf ("[2]-Listar Todos \n"); printf ("[3]-Alterar \n"); printf ("[4]-Excluir \n"); printf ("[5]-Gerar arquivo \n"); printf ("[6]-Carregar Arquivo \n"); printf ("[7]-Sair \n"); scanf ("%d",&opcao); switch (opcao) { case 1: { inserir(); getch(); system ("cls"); break; } case 2: { imprimir(); getch(); system ("cls"); break; } case 3: { alterar(); getch(); system ("cls"); break; } case 4: { remover(); getch(); system ("cls"); break; } case 5: { gerararquivo (); getch(); system ("cls"); break; } case 6: { importararquivo (); getch(); system ("cls"); break; } default: { printf("Comando invalido\n"); } } }}int inserir(){ printf ("1- Cadastrar Contato [S/N]\n"); // Opção para escolher se cadas ou não os dados scanf ("%s",&insert); while (insert=='S'|| insert =='s') { p=(struct agenda*)malloc(sizeof(struct agenda)); //aloca if(p!=NULL); { codid++; // contador para gerar um id de cadastro p->id=codid; // inseri esse id printf ("Digite o Nome: "); scanf("%s",&(p->nome)); printf ("Digite o Sobrenome: "); scanf("%s",&(p->snome)); printf ("Digite o Telefone: "); scanf ("%d",&(p->tel)); p->prox=NULL; if (topo==NULL) topo=p; else fim->prox=p; // ligando as structs fim=p; printf ("Cadastrar outro contato [S/N]\n"); // opção de continuar ou sair scanf ("%s",&insert); } }}int imprimir(){ aux=topo; while (aux) // imprimir tudo o que estiver cadastrado { printf("\n"); printf("Cadastro %d : Contato: %s %s - ",aux->id,aux->nome,aux->snome); // cadastro pronto para consulta (variaveis com string) printf("Telefone %d",aux->tel); //variaveis interios printf("\n"); aux=aux->prox; printf ("\n"); } printf("Pressione ENTER para voltar ao menu\n");}int alterar(){ printf ("Para localizar digite Numero do Cadastro:"); scanf ("%d",&loc);// variavel para localizar aux=topo; while (aux) { if(aux->id==loc) { printf("Contato: %s %s - ", aux->nome,aux->snome); //mostra o cadstro encontrado //incio as modificações: printf("Telefone %d ",aux->tel); printf("\n"); printf ("Mudar o Nome: "); scanf("%s",&p->nome); printf ("\n"); printf ("Mudar o Sobrenome: "); scanf("%s",&p->snome); printf ("\n"); printf ("Telefone o Telefone: "); scanf ("%d",&p->tel); printf ("\n"); } else // quando não encontra o cadastro { printf ("Contato Nao Localiazado\n"); } aux=aux->prox; } printf("Pressione ENTER para voltar ao menu\n");}int remover(){ printf ("Para localizar digite Numero do Cadastro\n:"); scanf ("%d",&loc); if (p->prox=NULL) // Se não tiver nenhum dado printf ("Agenda Vazia\n"); else { fim=p; for (topo=p->prox;topo!=NULL;topo=topo->prox) { if(loc==topo->id) { fim->prox=topo->prox; free(topo); loca=1; } printf("Cadastro Excluido\n"); if(loca==1) break; fim=topo; if (topo->prox==NULL && loca==0) printf ("Cadastro nao Encontrado\n"); } } printf("Pressione ENTER para voltar ao menu\n");}int gerararquivo(){ FILE *FPTR; //ponteiro do arquivo FPTR = fopen ("agenda.txt","w"); //cria um arquivo ou modifica caso já tenho um arquivo criado aux=topo; while (aux) { fprintf(FPTR,"%s\t",p->nome); fprintf(FPTR,"%s\t",p->snome); if (aux==fim) fprintf(FPTR,"%d",p->tel); else fprintf(FPTR,"%d\t",p->tel); aux=aux->prox; } fclose(FPTR); //fecha o arquivo printf("Contato(s) Salvos"); printf("Pressione ENTER para voltar ao menu\n"); }int importararquivo(){ FILE *FPTR = fopen("agenda.txt", "r"); // abre o arquivo como read (leitura) if(FPTR==NULL)//se não exite arquivo txt printf("Ainda não Existe Arquivo de Contatos\n"); else { do // ver comentario no while { p=(struct agenda*)malloc(sizeof(struct agenda)); //novo aloca if(p!=NULL); { codid++; p->id=codid; // criando id //carregando dados do arquivo txt fscanf(FPTR,"%s",&(p->nome)); fscanf(FPTR,"%s",&(p->snome)); fscanf (FPTR,"%d",&(p->tel)); p->prox=NULL; if (topo==NULL) topo=p; else fim->prox=p; fim=p; } } while (!feof(FPTR)); // busca até chegar no fim do arquivo } fclose(FPTR); //fecha arquivo printf ("Arquivo Importado\n"); printf("Pressione ENTER para voltar ao menu\n");}

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...