• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

magikRing

erro na inicializacao da variavel por causa do case

5 mensagens neste tópico

boas...entao o meu problema e o seguinte:

  eu tenho este case:

switch(escolha) 
{
    case 1:
	int n=lertexto(texto);
    codificartexto(texto,n);
	mostrartexto(texto,n);        
        break;
    case 2 :
	int s=lertexto(texto);
    descodificartexto(texto,s);
	mostrartexto(texto,s);
	break;

e quando tento correr da.me o seguinte erro  "error C2360: initialization of 'n' is skipped by 'case' label"

e aponta para o "case 2"

  se eu tirar o case 2 ele ja funciona. alguem sabe o problema?

se for preciso meter o resto do codigo avisem.

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Declara o 'n' e o 's' antes do case, se possível no início da função.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao posso fazer isso por o meu 'n' vem daqui:

int lertexto(char texto[][80])
{
int linha=0;
puts ("Digite o texto - prima end para acabar\n");
fflush(stdin);
gets(texto[linha]);
while(linha <10 && strcmp(texto[linha],"end")!=0) 
{
	linha++;
	gets(texto[linha]);
}
return linha;
}

ou seja, quando eu escolho a opcao no menu quero que ele comece logo a fazer a funcao ler texto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu vou reformular.

int n, s;

switch(escolha)
{
    case 1:
      n=lertexto(texto);
       codificartexto(texto,n);
      mostrartexto(texto,n);       
        break;
    case 2 :
      s=lertexto(texto);
       descodificartexto(texto,s);
      mostrartexto(texto,s);
      break;

Tens de declarar antes, mas depois podes usar a variável igual.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora