Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Celestino Alona

C Apagar linha determinada linha da tela

Recommended Posts

Bom dia, gostaria de tirar uma dúvida que me veio agora. Teria como dar algum comando em C para que if(alguma coisa  aconteça) o programa limpa a última linha escrita? Eu tô com esse pequeno problema, pois tô fazendo um código onde eu quero que caso o usuário digite algo não permitido, haja uma limpeza naquilo que ele escreveu, porém sem apagar tudo o que foi escrito anteriormente na tela.

 

Por exemplo, eu coloco um printf("Insira seu nome : ",x); e o usuário coloca apenas números ou caracteres especiais. Quero que haja uma limpeza nesse printf e automaticamente ele reapareça, porém sem o nome inserido pelo usuário, para que ele o escreva novamente. Eu sei que tem o "goto" porém eu não quero que fique um monte de "Insira seu nome : " na tela, caso ele digite algo errado várias e várias vezes. Teria alguma função system("cls); que fosse apenas para a parte do código que você escolher ?

Editado por Simon Viegas
Remover excesso de negrito
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Celestino Alona     você pode usar uma função para posicionar o cursor no inicio da linha que você quer deletar, e assim imprima uma linha contendo 80 caracteres espaço , com isso o conteúdo da linha será apagada e em seguida posicione o cursor novamente no inicio da linha , mas para cada printf precisa posicionar o cursor e para isso precisa de um contador de linhas para saber em qual linha da tela está e então voltar uma linha acima , e essa função precisa ser criada para a linguagem  c  .   No pascal ela já existe e se chama gotoxy , mas não posso te dar o código pronto pois é contra as regras do fórum , então faça seu código e poste aqui para vermos como está e em que podemos ajudar   .

Editado por devair1010

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Olá. Vê se é essa função:

#include <stdio.h>
#include <windows.h>

void gotoxy(int x, int y) {
    COORD c = {x, y};
    SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE), c);
}

int main() {

    gotoxy(20, 5);
    printf("Teste");

    gotoxy(20, 8);

    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@giu_d    essa mesmo ,  mas precisa organizar o código para que ele saiba em qual linha está e caso precise deletar a linha digitada então ele saiba para qual linha voltar e apaga-la .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Essa função bem usada me parece q pode funcionar. 

Mas é como você falou: "Precisa organizar o código..." 

Talvez com um do/while resolva

adicionado 38 minutos depois

Um pequeno exemplo:

int main() {

    char ch;

    printf("\n=========Exemplo==========");

    gotoxy(0, 5);
    printf("Ditite: ");
    scanf("%c", &ch);
    scanf("%c", &ch);

    Sleep(1000);

    gotoxy(0, 5);
    printf("                        ");

    gotoxy(0, 5);
    printf("Ditite novamente: ");
    scanf("%c", &ch);
    scanf("%c", &ch);

    return 0;
}

Algo assim

Obs: Tô com dois dedos enfaixados e não tá fácil digitar rs...

Editado por giu_d
corrigir código
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×