JoBlack Posted April 15, 2006 at 04:43 PM Report #22232 Posted April 15, 2006 at 04:43 PM Olá a todos Estou aqui com um prob pois coloquei a função clrscr() num prog, coloquei o #include <conio.h> no início mas, mesmo assim, dá-me o erro '[Linker error] undefined reference to 'clrscr' '' O que se passará?? Nota: estou a porg com o Dev-C++
saramgsilva Posted April 15, 2006 at 05:45 PM Report #22237 Posted April 15, 2006 at 05:45 PM system("cls"); sera uma bao solucao...e pelo que sei ja tinhas resolvido o problema, usando isto... pessoal, system("cls"); tb funciona bem em linux, nao funciona? so para confirmar... 🙂 www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5
mogers Posted April 16, 2006 at 01:47 PM Report #22359 Posted April 16, 2006 at 01:47 PM Não ! Em Linux é system("clear"); daí que não conseguimos assegurar a portabilidade do programa a menos que coloquemos umas flags de pré-compilação para escolher a função a fazer, mediante o sistema operativo. cumps "What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.
UnKnowN Posted April 16, 2006 at 02:02 PM Report #22363 Posted April 16, 2006 at 02:02 PM Esse "Não !" escusava de ser tao agressivo, afinal estás a falar com uma minina 🙂
saramgsilva Posted April 16, 2006 at 03:17 PM Report #22373 Posted April 16, 2006 at 03:17 PM ? agressivo? nao precebi onde...por achei... mas nao interessa... e dai ...de ser menina... ou menino? :dontgetit: ... deixemo nos de off topic... k isso nao interessa... Entao pelo k percebi system("cls"); para windows system("clear") para linux www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5
JoBlack Posted April 16, 2006 at 03:20 PM Author Report #22374 Posted April 16, 2006 at 03:20 PM ok, tomei nota... 🙂
motherFFH Posted April 16, 2006 at 04:33 PM Report #22395 Posted April 16, 2006 at 04:33 PM printf("\033[2J"); em unix ou windows.
mogers Posted April 22, 2006 at 03:48 PM Report #23603 Posted April 22, 2006 at 03:48 PM Tive a experimentar mas nao funcionou.. por acaso não houve algum engano? "What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.
reiz Posted April 30, 2006 at 01:19 PM Report #24966 Posted April 30, 2006 at 01:19 PM falta-t incluires uma biblioteca que agora nao m lembro o nome para o clrscr funcionar... acho que nao é a conio.h pode ser a win.h
vbtipo Posted April 30, 2006 at 07:35 PM Report #24997 Posted April 30, 2006 at 07:35 PM Se não me engano acho que tens que utilizar a biblioteca: #include <stdio.h> Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões.
redhat Posted May 1, 2006 at 04:25 PM Report #25105 Posted May 1, 2006 at 04:25 PM printf("\033[2J"); em unix ou windows. divinal! nunca percebi o que esse codigo realmente faz mas eh magnifico!! quanto ao system("clear") e' manhoso, pois se fizeres scroll para cima o texto ta la todo ^^ (pelo menos era o que me acontecia) Software is like sex... it's better when it's free in the old days P@P "C" && "Linux" Moderator
mogers Posted May 1, 2006 at 07:38 PM Report #25138 Posted May 1, 2006 at 07:38 PM redhat.. mas funciona essa instrucção? comigo nao limpa o ecra :bored: (em windows) "What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.
untouchables Posted May 2, 2006 at 07:56 PM Report #25315 Posted May 2, 2006 at 07:56 PM se não me engano, o clrscr() não passa de um printf de um monte de "\n"? se assim for, podes simplesmente fazer isso 🙂
yoximut Posted May 3, 2006 at 10:26 AM Report #25397 Posted May 3, 2006 at 10:26 AM que me lembre, no devC++ nao funciona esse clrscr() - pelo menos com os includes +- "habituais",lol, a forma + simples é msm u system("cls");
redhat Posted May 6, 2006 at 10:16 AM Report #25999 Posted May 6, 2006 at 10:16 AM sim mogers funciona!! mas eu nao uso Windows para programar ja' 'a algum tempo! todo o meu code e' feito em MacOSX =) agr, para limpar a consola em *nix e' de facto o comando clear, e para windows e' cls! penso que o system(cls); funciona para windows assim como o system(clear); funciona para *nix. a ideia de fazer uma funcao 'a parte que limpe o ecra com \n e' boa, mas a partir do momento que se redimensiona o tamanho da janela, ja' nao pode ser usada, e uma funcao universal seria o ideal! abraços Software is like sex... it's better when it's free in the old days P@P "C" && "Linux" Moderator
entering Posted May 6, 2006 at 01:04 PM Report #26052 Posted May 6, 2006 at 01:04 PM no Dev-C++ a função clrscr não funciona, alias é estupido referir isto o Dev-C++ é um IDE que usa o compilador gcc a função clrscr é uma função 'non-standard' por isso deve ser evitado o seu uso, pois grande parte dos compiladores não a suportam, o mais conheçido que a suporta é o borland-c #include <stdio.h> #include <conio.h> int main (void) { clrscr(); return 0; } 5 C:\Documents and Settings\Eduardo\Ambiente de trabalho\teste.c [Warning] implicit declaration of function `clrscr' [Linker error] undefined reference to `clrscr' Isto em Windows quanto a Unix $ uname FreeBSD $ gcc -Wall teste.c teste.c: In function `main': teste.c:4: warning: implicit declaration of function `clrscr' /var/tmp//ccxrWrov.o(.text+0x1d): In function `main': : undefined reference to `clrscr' Quanto ao system(cls) e system(clear), chega a tocar o ridiculo Para ja a função system nao existe para andar a 'apagar ecras' nem nada do genero, existe para um 'general purpose' -> passar 'strings' a linha de comandos. É uma função standard, definida na libraria stdlib.h cuja sintaxe é int system(const char *string); Basicamente é passado um parametro e retorna 0 em caso de sucesso Ex: #include <stdio.h> #include <stdlib.h> #define MAXS 100 int main (void) { char string[MAXS]; printf ("Comando: "); fgets (string,MAXS,stdin); if (system (string)) { fprintf (stderr,"\nErro - ...\n"); exit (EXIT_FAILURE); } return 0; } $ gcc -Wall teste.c $ ./a.out Comando: whereis gcc gcc: /usr/bin/gcc /usr/share/man/man1/gcc.1.gz redhat system(clear) não funcionaria visto que strings tem que estar entre "" não? $ cat teste.c #include <stdio.h> #include <stdlib.h> int main (void) { system (clear); return 0; } $ gcc -Wall teste.c teste.c: In function `main': teste.c:5: error: `clear' undeclared (first use in this function) teste.c:5: error: (Each undeclared identifier is reported only once teste.c:5: error: for each function it appears in.) ou seja teria que ser algo do genero system ("clear"); mas sera que se deve usar um system apenas para limpar o ecra?! em unix existem alguns escape codes e com um simples printf podemos fazer coisas engraçadas desde limpar ecras mover o cursor para onde queremos ate usar cores (isto das cores já foi referenciado neste forum por algum user [nao me lembro do nick] e deu o exemplo de azul). printf ("\e[2J\e[H"); // limpa o ecra (unix) printf("\033[34mAZUL\033[0m\n"); // cores em windows nao é possivel limpar o ecra desta maneira, no entanto alguns compiladores de c para windows dispoe de funçoes proprias (non-standard) para resolver o problema, senao estou em erro o clrscr existe no borland-c, deverao procurar a soluçao na net conforme o vosso compilador.
Knitter Posted August 4, 2006 at 09:28 PM Report #42338 Posted August 4, 2006 at 09:28 PM A função conio.h é uma função proprietária da Borland pelo que no DevC++ não vai existir, podem procurar bibliotecas com implementações alternativas, e assim o código torna-se fácilmente portável. Existem implementações alternativas a essas bibliotecas, se não me engano o DevC++ trás uma mas não me lembro do nome, já lá vai o tempo. Sei que o tópico está um pouco morto, mas na leitura diagonal que fiz não encontri nenhuma referencia a este facto. Já agora fazer chamadas ao sistema não deve ser usado, por exemplo, nada garante que o windows vista tenha qualquer suporte para esse tipo de função.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now