Ir para conteúdo
Fórum Script Brasil
  • 0

Ponto de retorno [RESOLVIDO]


Jonas Artur

Pergunta

Boa noite.

Minha Dúvida é a seguinte:

Tem alguma função que eu crie um ponto que posso voltar depois..

Um exemplo seria a função "goto", mas o problema é que o goto só volta se for dentro da mesma função, int main por exemplo..

Agora, queria saber se tem alguma coisa que eu pegasse dentro de outra função..

É melhor eu exemplificar aki...

Por exemplo:

void cadastro();

..

..

int main()

{

//variaveis

VOLTE_AKI(); //Seria aonde o "cursor" teria que voltar.

printf("...");

cadastro();

getch();

}

void cadastro()

{

printf("Simulação de um menu de cadastro e tals");

scan....

agora volte na posição VOLTE_AKI();

}

Seria mais ou menos isso...

Pra constar, uso o Dev-Cpp...

Se alguém pudesse me ajudar ficaria muito grato...

Vlws.. abraços

Editado por Jonas Artur
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

O que você quer é impossível em C ou C++. Seja qual for o problema que precise resolver, terá de usar a lógica. Aliás, em C e C++ é sempre desaconselhável usar o comando GOTO. Se você sabe usar a lógica, qualquer problema que seja pode ser resolvido sem usar esses tipos de artifícios.

Link para o comentário
Compartilhar em outros sites

  • 0

É possível utilizando-se de long jumps.

http://www.cplusplus.com/reference/clibrary/csetjmp/

Você vai ter que passar as informações do calling environment (jmp_buf) por aí. Você pode tanto passar como parâmetro na função ou utilizar-se de variáveis globais.

Exemplo:

#include <stdio.h>
#include <setjmp.h>

void f(jmp_buf *env);

int main(void) {
    jmp_buf env;

    setjmp(env); /* "seta" o ponto de torno do longjmp */
    f(&env);

    return 0; /* note que nunca, em uma execução normal, o código chegará até aqui */
}

void f(jmp_buf *env) {
    printf("Teste\n");
    longjmp(env, 0); /* vai para o local aonde foi chamado o setjmp */
}

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Minhas desculpas ao colega. Vi isso há tanto tempo que me esqueci completamente. Mas pudera. Jamais usaria um recurso desses. A exemplo do GOTO, é uma tremenda gambiarra. Aliás, se alguém um dia pretender uma vaga no mercado de trabalho com C ou C++, não use nada do tipo num provável teste de aptidão. Se usar, com certeza será descartado.

Editado por Maligno
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...