Pirituba Postado Setembro 15, 2006 Denunciar Share Postado Setembro 15, 2006 SalveEstou fazendo um programa que trabalha com um conjunto de dados digitados pelo usuário, eu recebo os dados da seguinte maneira...printf("\nNome: "); scanf("%s",lista.nome); printf("\nTelefone: ");scanf("%s",lista.telefone); printf("\nStatus: ");scanf("%s",lista.status);O problema é que o na execução o programa pula itens, tipo:Nome: Telefone:não permitindo que o usuário digite o nome no exemplo acima:Como eu faço pra corrigir esse errovaleu galera Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Setembro 15, 2006 Denunciar Share Postado Setembro 15, 2006 assim: printf("\nNome: "); scanf("%s",&lista[i].nome); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pirituba Postado Setembro 15, 2006 Autor Denunciar Share Postado Setembro 15, 2006 Se tratando de vetor o & não é opcional?mesmo colocando o & ele continua pulando! Não entendo porque?valeu cara, sou iniciante em programação e obrigado pela ajuda Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Setembro 15, 2006 Denunciar Share Postado Setembro 15, 2006 Se tratando de vetor o & não é opcional?mesmo colocando o & ele continua pulando! Não entendo porque?sim, voce tem razão.pra saber o porque ele continua pulando, só com todo códigoposta ai pra gente :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pirituba Postado Setembro 15, 2006 Autor Denunciar Share Postado Setembro 15, 2006 Eu agradeço pela ajuda cara, mas o programa é muito extenso e fora esse problema agora eu estou tendo outros, o meu trabalho é o seguinte deveria fazer uma lista ordenada estatica, onde o campo chave teria seis digitos, entaum eu fiz o seguinte: fiz toda lógica utilizando apenas essa chave e estava tudo funcionando, inserção, remoção, listagem dos registros, ai entaum fui colocar os outros campos e esta dando aquele problema, fora aquele o listar também imprime mais do que deveria e não sei porque, você saberia dizer porque problemas desse tipo acontecem? para apenas o campo chave dá tudo certinho, e com os outros campos acontecem esses problemas....será que seria melhor eu recomeçar utilizando todos os campos e fazendo os testes necessários para não ter surpresas como estas?....eu acho que o programa é muito extenso pra postar se você puder me ajudar com as perguntas e dar algumas dicas eu já estarei muito satisfeito porque o pequeno problema se tornou enorme, valeu pela ajuda Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Setembro 15, 2006 Denunciar Share Postado Setembro 15, 2006 bom, sem o código fica realmente difícilmas as dicas para resolver esses erros bobos são:- Tomar muito cuidado com a variável de indexação, no seu exemplo: lista.alguma_coisa- Tomar muito cuidado na construção da sua estrutura.- Tomar muito cuidado no encadeamento de lista, o ultimo registro deve apontar para NULL.- Quando percorrer a lista, seja para inserir, imprimir, etc.., sempre lembrar que o ultimo registro aponta pra NULL.coisas assimvoce poderia no minimo postar sua estrutura aqui "struct"o que seria esse campo chave de 6 digitos? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Setembro 16, 2006 Denunciar Share Postado Setembro 16, 2006 Eu consegui resolver o problema com os dados...só tem agora o problema de pular, mas o estranho é que esse problema só acontece com a primeira inserção vou postaro codigo...não estou usando ponteiros pois o trabalho e de alocação estatica o struct e o procedimento são os seguintesstruct registro{ float chave; char nome[40]; char telefone[20]; char status[2]; };void inserir(struct registro *lista){ int i,parar,posicao; float chave_teste; struct registro dados; printf("Digite a chave que deseja inserir:"); scanf("%f",&chave_teste); if(testa_chave(chave_teste)){ if(testa_cheio(lista)){ if(!lista_vazia(lista)){ lista[0].chave=chave_teste; //o problema esta ocorrendo nessas inserções printf("\nNome: "); scanf("%s",lista[0].nome); printf("\nTelefone: "); scanf("%s",lista[0].telefone); printf("\nStatus: "); scanf("%s",lista[0].status); }else{ if(!buscar(lista,chave_teste,&posicao)){ dados.chave=chave_teste; printf("\nNome: "); scanf("%s",dados.nome); printf("\nTelefone: "); scanf("%s",dados.telefone); printf("\nStatus: "); scanf("%s",dados.status); atualizar_lista(lista,dados); }else printf("A chave digitada já existe!\n"); } }else printf("não e possivel inserir novas reservas lista cheia!\n"); }else printf("A chave digitada não e valida!\n"); system("pause");}valeu a ajuda(obs. no campo status tenho que fazer ainda uma função para verificar se o que o usuário digitar é igual a BE BS ou CN se não tenho que fazer um looping e força-lo a entrar com um status válido) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pirituba Postado Setembro 16, 2006 Autor Denunciar Share Postado Setembro 16, 2006 SalveEu tinha esquecido de colocar & para continuar as inserções, mas já corrige, e o mais estranho e que o erro acontece também para essas inserções, só que ele acontece as vezes, aleatoriamente....????Obrigado pela ajuda Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Pirituba
Salve
Estou fazendo um programa que trabalha com um conjunto de dados digitados pelo usuário, eu recebo os dados da seguinte maneira...
printf("\nNome: ");
scanf("%s",lista.nome);
printf("\nTelefone: ");
scanf("%s",lista.telefone);
printf("\nStatus: ");
scanf("%s",lista.status);
O problema é que o na execução o programa pula itens, tipo:
Nome: Telefone:
não permitindo que o usuário digite o nome no exemplo acima:
Como eu faço pra corrigir esse erro
valeu galera
Link para o comentário
Compartilhar em outros sites
7 respostass 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.