Jonas Artur Postado Novembro 27, 2009 Denunciar Share Postado Novembro 27, 2009 (editado) Fala Pessoal. Beleza?É o seguinte, fiz um programa de probabilidade mas ainda tem algumas coisas erradas que não estou conseguindo arrumar.Estou com os seguintes problemas:1- Validar que o usuário digite o número com 2 algarismos (01 , 12 , 06).2- A leitura do arquivo de texto não consegue ler a primeira linha, o resto ele consegue.O código está aki: http://pastebin.com/m7ed92c46Alguém pode me ajudar?Abraços Editado Novembro 28, 2009 por Jonathan Queiroz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Novembro 27, 2009 Denunciar Share Postado Novembro 27, 2009 int validar(int numero) { char str[16]; sprintf(str, "%d", numero); if(strlen(str) <= 2) { return 1; } return 0; } Para validar você pode utilizar a função acima. Números como "1" ainda serão aceitos. Só se você ler e validar diretamente como string. Sobre o 2, talvez o motivo esteja obscuramente aqui: if(fopen(nomearquivo,"r") != NULL) { arq = fopen(nomearquivo,"r"); Troque para ... e teste: arq = fopen(nomearquivo, "r"); if(arq != NULL) {Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonas Artur Postado Novembro 28, 2009 Autor Denunciar Share Postado Novembro 28, 2009 Deu certo Fera..Agora você pode me explicar o que aconteceu?Qual a diferença de eu abrir o arquivo antes do if?e a função VALIDAR eu não entendi muito bem..Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Novembro 28, 2009 Denunciar Share Postado Novembro 28, 2009 É provável que o fato de você abrir o arquivo duas vezes estivesse posicionando de forma errada o ponteiro do arquivo. Quanto à função para validar, o que você não entendeu ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonas Artur Postado Novembro 28, 2009 Autor Denunciar Share Postado Novembro 28, 2009 O que exatamente essa linha faz?sprintf(str, "%d", numero); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Novembro 28, 2009 Denunciar Share Postado Novembro 28, 2009 Essa linha recebe um inteiro e grava no buffer como string. sprintf é parecida com a função printf, mas ao invés de mostrar o resultado na tela, o resultado vai para uma string. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonas Artur Postado Novembro 28, 2009 Autor Denunciar Share Postado Novembro 28, 2009 Humm. Entendi..Curiosidade.. Isso vale pra validar no caso do usuário digitar uma letra?Se não.. Como eu poderia fazer? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Novembro 28, 2009 Denunciar Share Postado Novembro 28, 2009 Se ele digitasse strings a conversão não seria necessária, nesse caso você poderia somente utilizar a função strlen. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonas Artur Postado Novembro 28, 2009 Autor Denunciar Share Postado Novembro 28, 2009 Eu acho que você entendeu errado.. ou eu não soube me expressar.Eu não quero que ele digite uma letra, somente números..você tem um exemplo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Novembro 28, 2009 Denunciar Share Postado Novembro 28, 2009 Se você leu como string e quer verificar se só há números, pesquise basta percorrer caractere por caractere e verificar se está num intervalo de 48 a 57 (isso porque, em ASCII, 48 = '0' e 57 = '9') Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonas Artur Postado Novembro 28, 2009 Autor Denunciar Share Postado Novembro 28, 2009 Aah sim sim.. entendi.. vou pesquisar sobre essa função strlen..Obrigado pela ajuda até aqui..Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Novembro 28, 2009 Denunciar Share Postado Novembro 28, 2009 De nada. Poste aqui se conseguiu ou não fazer. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonas Artur Postado Novembro 29, 2009 Autor Denunciar Share Postado Novembro 29, 2009 olha só.. eu consegui fazer ele ler quantos caracteres a variável tem, mas como eu sei O QUE tem nessa variável?Tipo, como eu faço pra validar de acordo com a tabela ASCII que você citou?Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Novembro 29, 2009 Denunciar Share Postado Novembro 29, 2009 A tabela ASCII é composta por 256 números e cada um tem um "significado". Veja se isso lhe ajuda: http://pt.wikipedia.org/wiki/AsciiEm C, pode-se utilizar os caracteres do ASCII entre '. Exemplo: 'A' = 65, '0' = 48 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jonas Artur
Fala Pessoal. Beleza?
É o seguinte, fiz um programa de probabilidade mas ainda tem algumas coisas erradas que não estou conseguindo arrumar.
Estou com os seguintes problemas:
1- Validar que o usuário digite o número com 2 algarismos (01 , 12 , 06).
2- A leitura do arquivo de texto não consegue ler a primeira linha, o resto ele consegue.
O código está aki: http://pastebin.com/m7ed92c46
Alguém pode me ajudar?
Abraços
Editado por Jonathan QueirozLink para o comentário
Compartilhar em outros sites
13 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.