Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RamonMachado

Erro "8" in octal constant

Recommended Posts

Olá, bem eu estava fazendo um pequeno programa apenas para aprender e praticar C.

Resolvi criar um switch com diversas cases, sendo que os constantes vão de 1 a 30. Porém quando fui compilar, recebi a mensagem de erro: "[Error] invalid digit "8" in octal constant" e "[Error] invalid digit "9" in octal constant". Segue o trecho do código que acusa o erro:

 

 

case 08: strcpy(X, dia08); break;
case 09: strcpy(X, dia09); break;

 

Obrigado a todos que puderem ajudar, abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O trecho de código que você postou não diz nada. Para determinar a causa da maioria dos erros de compilação, é necessário mais do que apenas as linhas apontadas no retorno do compilador.

 

Poste o código completo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste mais sobre o código, mas por meu "chute", a sua constante é octal, oq signiica que seu valor máximo de cases é 8, como vc começou do 0 e não do 1, de 0 até 7 o limite foi esgotado, então o 8 e 9 não podem ser utilizados..

Compartilhar este post


Link para o post
Compartilhar em outros sites

webdevbr, você esta quase certo. Um valor em base octal pode ser maior que 8, contudo deve usar os algarismos entre 0 e 7.

 

O erro esta na seguinte linha : case 09: strcpy(X, dia09); break;

 

Substitua por case 011: strcpy(X, dia09); break;

 

Usar a base octal foi uma escolha ? Caso não tenha sido remova o 0 antes dos algarismos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

webdevbr e deep2, bem sou bastante iniciante ainda e estou aprendendo com os meus erros... Então quer dizer que se eu colocar o "0" na frente ele passa a usar uma base octal? (Não tenho a mínima ideia do que seja isso, mas pelo o que eu entendi só permite ter 8 cases em um switch).


Nesse programa, ele pede ao usuário para digitar o mês, nesse caso eu tenho 12 cases's, sendo que o "08" e "09" correspondem ao mês de Agosto e Setembro respectivamente. Ou seja, ele vai comparar a variável que foi inserida pelo o usuário com os cases e retornar o valor equivalente ao mês digitado. Então, existe alguma maneira de consertar isso? Pelo o que eu entendi se eu retirar o "0" da frente o problema é resolvido. Estou certo?!

 

Mais uma vez obrigado a todos, abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.