Olá pessoal, já conhecia o fórum e sempre usei para pesquisar, mas hoje estou precisando de uma ajudinha. Sou iniciante e estou começando a aprender C. Com um certo conhecimento que adquiri, decidi criar uma calculadora, os cálculos são feitos corretamente, tudo funciona, mas estou implemento funções que verifica se tal valor é correto.
O programa pede para digitar um inteiro, mas se uma letra é digitada, no caso a função scanf falha. Pesquisando um pouco eu achei esse código em um fórum gringo, apenas implementei o goto para repetir os comandos:
#include <stdio.h>
int main()
{
char buffer[200];
char *nao_inteiro;
int num;
GO: printf ("\nDigite um número: ");
scanf ("%s", buffer);
num = strtol(buffer, &nao_inteiro, 10);
if (*nao_inteiro != '\ 0')
{
printf ("\nValor inválido!");
goto GO;
}
printf ("\nVocê digitou o número: %d\n", num);
return (0);
}
O código funciona, mas se alguém puder explicar como ele funciona seria interessante, ta certo que o código para mim agora pode ser confuso mas queria saber como funciona, porque tentei aqui e não consegui resolver de uma maneira mais simples.
Pergunta
Mako
Olá pessoal, já conhecia o fórum e sempre usei para pesquisar, mas hoje estou precisando de uma ajudinha. Sou iniciante e estou começando a aprender C. Com um certo conhecimento que adquiri, decidi criar uma calculadora, os cálculos são feitos corretamente, tudo funciona, mas estou implemento funções que verifica se tal valor é correto.
O programa pede para digitar um inteiro, mas se uma letra é digitada, no caso a função scanf falha. Pesquisando um pouco eu achei esse código em um fórum gringo, apenas implementei o goto para repetir os comandos:
O código funciona, mas se alguém puder explicar como ele funciona seria interessante, ta certo que o código para mim agora pode ser confuso mas queria saber como funciona, porque tentei aqui e não consegui resolver de uma maneira mais simples.
Editado por MakoLink para o comentário
Compartilhar em outros sites
2 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.