Jump to content
thranduil

erro no linker com o conio.h

Recommended Posts

thranduil

olá a todos :P

l

quando tento compilar um programa que estou a fazer no qual aparece a função clrscr() o linker diz-me sempre que esta função não existe. tenho a certeza que tenho o conio incluido mas não entendo porque é que o linker dá o erro :S

#include <stdlib.h>
#include <conio.h>

int menu()
{
int opcao;
clrscr();

do
{
  printf("Menu\n\n");
  printf("1. Procurar aluno\n");
  printf("2. Adicionar aluno\n\n");
  printf("Opção: "); scanf(" %i", &opcao);
}
while(opcao>3 && opcao<0);
return opcao;
}

main()
{
int opcao;
char nome[20];

opcao = menu();
if(opcao==1)
{
  printf("\nInsira o nome do aluno: "); gets(nome);
}
else
{
  printf("\nInsira o nome do novo aluno: "); gets(nome);
}

system("PAUSE");
}

o programa está longe de estar acabado :P estou a faze-lo porque à muito que não mexo no c e comecei a ver agora a parte dos ficheiros exteriores ^^

se virem algum erro também agradecia que me iformassem.

thank you ^^

Share this post


Link to post
Share on other sites
jarsantos

Para se incluir headers feitos pelo utilizador a forma de se fazer isso é:

#include "header.h"

no teu caso é:

#include <stdlib.h>

#include "conio.h"

PS: A tua condição while esta errada: while(opcao<1 || opcao>2);

Share this post


Link to post
Share on other sites
thranduil

PS: A tua condição while esta errada: while(opcao<1 || opcao>2);

hmm não? para isso teria que ser opcao<=1 || opcao >= 2 acho eu porque se fizeres <1 ele não conta com o um e conta a partir do número anterior. acho eu :S pelo menos estava convencido que sim :S

quanto ao resto, obrigado pela ajuda :P

Share this post


Link to post
Share on other sites
deathseeker25

thranduil vais ter de explicar esse ciclo while porque não estou a conseguir compreender....

Share this post


Link to post
Share on other sites
Gurzi

o ciclo while está correcto excepto a parte da condição é while opcao>3 || opcao <1 ..

porque se nao estás a dizer que tem que ser maior que 3 e menor que 1 e isso nao tem logica .. repara se eu puser 3 nunca vai ser maior que 3 e menor que 1 ao mesmo tempo de resto está certo.

e já agora porque criaste outra variavel chamada opçao e nao usaste tipo if (menu(2)) em vez de if(opcao==1)?

Share this post


Link to post
Share on other sites
jarsantos

o ciclo while supostamente é: enquanto for diferente de 1 ou 2 continua a mostrar o menu. Quando for igual a 1 ou 2 sai do ciclo.

ora para ter estas condiçoes tem 2 formas:

while(opcao != 1 && opcao !=2)

ou entao:

while(opcao < 1 || opcao > 2)

Share this post


Link to post
Share on other sites
thranduil

guys.. continuo com o problema do conio.h.....

sempre que compilo o programa ele diz-me:

C:\DOCUME~1\JOO~1\DEFINI~1\Temp\ccSidaaa.o(.text+0x4b):alunos.c: undefined reference to `clrscr'

e aqui o include está

#include <conio.h>

o problema é que eu já tentei da outra maneira (com as aspas) mas nao dá. e a biblioteca vem com o devcpp e nao fui eu que a fiz :S

anyone can help me plz?

Share this post


Link to post
Share on other sites
will09

Só consegui limpar o ecrã utilizando o compilador Borland C++ v3.1 (Bem velhinho) porque o Dev C++ dava erro!

Incrivel... E eu k adorava o Dev C++  :wallbash:

Pode é ser do conio.h do Dev C++ não suportar o clrscr();  não sei  ;)

#include <stdio.h>
#include <conio.h>

main()
{
clrscr();
printf("\t\t\n Limpei o ecra mas em Borland C++ v3.1 \n\n\n");
printf("Escreva sair segido de enter para bazar \n");
scanf("%d");
}

PEACE  :smoke:

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.