Ir ao conteúdo

Como usar a função clreol em c?


Anderson16

Posts recomendados

Postado

A função clreol permite que se apague uma linha ou determinada parte do código, ao invés de apagar todo o código que está em execução na tela. Eu queria saber como se faz para usar esta função. valeu;..

Postado

Aparentemente, por uma rápida pesquisa no google, deve-se utilizar

gotoxy(linha x, linha y);
clreol();

de qualquer modo cara, procure um jeito de limpar linhas de modo mais "portável", não use funções de bibliotecas que não façam parte do ANSI C, me parece que isso cria maus hábitos (qualquer correção a essa observação, é bem vinda XD), tipo você ficar só escrevendo em "internetês" saca? (não falei que você escreve, só pra deixar claro, mas imagine em uma entrevista de emprego um cara com um bom curriculum e que no final, em uma redação, só usa internetês? iria contratar?) até porquê, provavelmente deve ter uma solução que faz parte do ANSI C e que você possa usar :)

Postado

não respondeu a minha pergunta :o, eu queria saber como apagar uma linha do cursor, ao invés de apagar tudo, procurei aqui mas não achei nada que funcionasse, espero que alguém me responda!!!

Postado

Bom, o problema é esse não da pra eu testar porque to com o Visual C++ (que funciona muito bem, obrigado! XD, pra mim) e tentei procurar aqui, só acho conio2.h pra Dev C++ e não sei onde poderia acha o .cpp da biblioteca pra poder colocar aqui, entende?

Mas pelo que vi um cara usando no youtube é isso, você bota a linha inicial na linha x e a linha final na linha y, todas entre estas ficam em branco '-'... como você ta implementando?

Postado
Desculpem minha intrusão, más tô entrando.hehe. Olha eu uso o Visual studio 2010, e nele eu configurei a biblioteca conio2.h que tem estas funções que foram citadas acima, e funciona perfeitamente.

Como? :blink: só achei em DEVPAKK (ou algo assim) e não consegui colocar pra funcionar no Visual C++ 2010... alguma jeito de exportar novos headers.. se eu tivesse visto um jeito teria ajudado (ou tentado mais um pouco... =/)

Postado

Bom, por mim tudo bem, ajuda ele com a questão do uso da função, e me ajuda em como configurar o Visual Studio..

bom.. mas se puder ajudar o Anderson16.. como usa a função clreol? :D

quanto a mim, qualquer coisa, se puder, manda por mp instruções relacionadas a instalação do header :)

Postado

bom, procurei pelo lib, para instalar como o Main.cpp disse, mas não achei (porque será que não estou surpreso... :()

mas achei a implementação, acho que só isso já da uma GRANDE ajuda.. segue a implementação do clreol e do gotoxy (parecem ter realmente uma relação..)

crleol


void
clreol (void)
{
COORD coord;
DWORD written;

__fill_text_info();
coord.X = __CONIO_LEFT + __text_info.curx - 1;
coord.Y = __CONIO_TOP + __text_info.cury - 1;

FillConsoleOutputCharacter (GetStdHandle (STD_OUTPUT_HANDLE),
' ', __text_info.screenwidth - __text_info.curx + 1, coord, &written);
gotoxy (__text_info.curx, __text_info.cury);
}

gotoxy


void
gotoxy(int x, int y)
{
COORD c;

c.X = __CONIO_LEFT + x - 1;
c.Y = __CONIO_TOP + y - 1;
SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}

fonte: http://conio.cvs.sourceforge.net/viewvc/conio/conio2/conio.c?revision=1.1&content-type=text%2Fplain

(do povo que fez.. XD)

dica: caso o devC++ seja como o visual C++, vá ver o documento, normalmente ajuda MUITO, algumas vezes fazendo apenas isso consegui resolver alguns problemas de implementação do código..

e aqui a video-aula que te falei: Apagar linhas - Comando "clreol" - (C++) - YouTube

de resto, tentei e procurei no google como te ajudar Anderson16, mas infelizmente não consegui nem, sequer, implementar para poder ter uma noção profunda do problema.. te desejo sorte, que isso que te enviei te ajude e que consiga solucionar o problema logo, beleza? :D

ps: em um forum, recomendaram à um carinha que usasse, ao invés de conio2.h utilizasse windows.h (no windows, pela windows 32 API).. não falaram nada sobre o linux, mas tenho certeza que tem uma biblioteca do gênero, talvez usando algo relacionado a gnome ou KDE resolva (caso use linux.. XD)

Postado

consegui, após as ultimas dicas do Main.cpp instalar o conio2.h

após implementar o conio2.h no você++, fiz o código assim:


#include <stdio.h>
#include <conio.h>
#include <conio2.h>
#define N_STRINGS 3

main()
{
int i;
for(i=0; i<10; i++)
printf("Demorei meio seculo pra linkar isso, valeu Main.cpp \n");
for(i=3; i<5; i++)
{
gotoxy(1, i);
clreol();
}
getchar();
}

o clreol depende do gotoxy, pelo que entendi.. e, neste caso, vai apagar apenas do elemento numero x (neste caso 1) de cada linha (neste caso, a linha i) até o ultimo elemento de cada linha..

segue "dicas" de cada um dos códigos

void gotoxy(int x, int y);

/**
* Puts string at the specified position.
* @param x horizontal position
* @param y vertical position
* @param str string
*/

void clreol (void);

/**
* Clears whole screen.
*/

espero que lhe ajude Anderson16 :)

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!