|
|
səhifə | 36/55 | tarix | 07.05.2018 | ölçüsü | 4,6 Mb. | | #50260 |
| #include
int nr;
main()
{ clrscr();
printf("Introduceti 0 sau 1 \n\n");
nr=getch();
if(nr==48)
printf("Numarul introdus este ZERO !");
else
printf("Numarul introdus este NONZERO !");
printf("\n Apasati orice tasta !");
getch();
}
-262- [ conio.h-getche() si getpass() ]
FUNCTIA getche()
-citeste si returneaza un caracter introdus de la tastatura
SINTAXA GENERALA este: int getche(void);
Functia citeste un caracter unic introdus de la tastatura.Functia sal-
veaza atat valoarea ASCII cat valoarea in format %c a caracterului intro-
dus,astfel incat acesta va putea fi afisat in fereastra de tip text,fie
in mod video direct fie apeland o rutina BIOS.
Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.
Functia returneaza valoarea ASCII a caracterului introdus.
EXEMPLU: #include
#include
int nr;
main()
{ clrscr();
printf("Introduceti un caracter:\n");
nr=getche();
printf("\n\n");
printf("Caracterul introdus este: \n %c",nr);
printf("\nSi are valoarea ASCII: \n %d",nr);
printf("\n\n Apasati orice tasta !");
getch(); }
FUNCTIA getpass()
-citeste o parola (fara sa afiseze tastele apasate)
SINTAXA GENERALA este: char *getpass(const char *prompt);
Functia citeste un sir de caractere introdus de la tastatura,fara sa
afiseze caracterele introduse,si arhiveaza datele dupa ce adauga un
caracter NULL(terminatorul de sir).Sirul astfel introdus poate contine
maximum 8 caractere(fara cel NULL adaugat).Functia returneaza automat
un pointer spre sirul arhivat,care este suprascris la fiecare apelare a
functiei.
Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.
Functia returneaza un pointer spre un sir static,suprascris la fiecare
apel al functiei.
EXEMPLU: #include
char *parola;
main()
{
clrscr();
cprintf("Introduceti parola secreta(maxim 8 caractere):\r\n");
parola=getpass("PAROLA= ");
cprintf("\r\n\n PAROLA INTRODUSA ESTE: \r\n\n");
cprintf("%s",parola);
cprintf("\r\n Apasati orice tasta :");
getch();
}
Functia se poate aplica cu succes pentru a solicita o parola secreta,dar
si pentru a introduce orice fel de cod numeric sau grafic,fara afisarea
pe ecran (de exemplu pentru a deschide un fisier sau o fila secreta sau
cu caracter confidential etc...).
-263- [conio.h-gettext() si gettextinfo() ]
FUNCTIA gettext()
-copiaza in memorie,un text de pe ecran
SINTAXA GENERALA este:
int gettext(int left,int top,int right,int bottom,void *destin);
unde: left(stanga),top(sus),right(dreapta) si bottom(jos) sunt coordonate-
le ariei de ecran din care se citeste textul iar *destin este pointerul
spre aria de memorie de destinatie(in care se arhiveaza textul).Functia
este asemanatoare cu functia getimage(),dar arhiveaza doar caractere.
Coordonatele specificate sunt coordonate absolute ale ecranului si nu se
raporteaza la ferestrele de tip text(se raporteaza strict la ecran).
Coltul din stanga sus al ecranului este la pozitia (1,1),fata de care se
raporteaza toate celelalte coordonate.Fiecare pozitie de pe ecran,necesita
2 bytes de memorie,dintre care primul este utilizat pentru caracterul
preluat iar cel de al doilea pentru a salva atributele video.Astfel,spa-
tiul de memorie necesar pentru a salva un tetx este dublu fata de dimen-
siunea textului: bytes=(nr randuri)x(nr coloane)x2
Functia nu poate fi apelata pentru aplicatiile Win 32 si Win 32 GUI.
Functia returneaza 1 daca textul a fost arhivat cu succes,sau 0 daca nu
a putut salva textul specificat(de exemplu daca coordonatele indicate sunt
in afara ecranului).
EXEMPLU: #include
#include
char text[3200];
main()
{ clrscr();
cprintf("\r TITLUL TEXTULUI \r\n");
cprintf("Textul urmator va fi preluat de functia gettext(),\r\n");
cprintf("si va fi afisat cu functia puttext()...\r\n");
cprintf("in alt format grafic!(pe coloane) ");
sleep(3);
gettext(0,0,80,5,text);
clrscr();
puttext(20,2,40,25,text);
sleep(5);
}
FUNCTIA gettextinfo()
-arhiveaza informatii despre modul video de afisare a textelor
SINTAXA GENERALA este: void gettextinfo(struct text_info *r);
datele se arhiveaza intr-o structura de tip text_info definita in conio.h
astfel: struct text_info { unsigned char winleft;
unsigned char wintop;
unsigned char winright;
unsigned char winbottom;
unsigned char attribute;
unsigned char normattr;
unsigned char currmode;
unsigned char screenheight;
unsigned char screenwidth;
unsigned char curx;
unsigned char cury; }
-264- [ conio.h -gotoxy() ]
Pentru a accesa date arhivate,se utilizeaza pointerul *r spre structura
de tip text_info in care s-au salvat informatiile.Structura contine
coordonatele ferstrei de tip text(winleft,win right,wintop si winbottom),
atributele si modul video,inaltimea si largimea ecranului,precum si pozi-
tia cursorului in fereastra de tip text(curx,cury).
Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.
Functia nu returneaza nici un fel de valori.Toate datele sunt orientate
spre structura pointata de *r.
EXEMPLU: #include
#include
struct text_info date;
main()
{ clrscr();
cprintf("Modul text al ecranului: \r\n");
gettextinfo(&date);
cprintf("atribut= %2d\r\n",date.attribute);
cprintf("mod curent= %2d\r\n",date.currmode);
sleep(3);
window(20,5,60,15);
textcolor(1);
textbackground(15);
cprintf("Fereastra de tip text !");
gotoxy(1,3);
gettextinfo(&date);
cprintf("Coltul din stanga al ferestrei= %2d\r\n",date.winleft);
cprintf("Coltul dreapta al ferestrei= %2d\r\n",date.winright);
cprintf("Pozitia x a cursorului= %2d\r\n",date.curx);
cprintf("Pozitia y a cursorului= %2d\r\n",date.cury);
sleep(5);
}
FUNCTIA gotoxy()
-deplaseaza cursorul la pozitia indicata
SINTAXA GENERALA este: void gotoxy(int x,int y);
Functia deplaseaza cursorul intr-o fereastra de tip text,la pozitia indi-
cata prin coordonatele x si y.Coordonatele se considera prin raportare la
fereastra de tip text deschisa in acel moment.Daca se specifica coordonate
situate in afara ferestrei active,functia va fi ignorata(Exemplu: daca se
solicita gotoxy(40,30) intr-o fereastra la care coltul din dreapta jos
este la (35,25)).Deasemenea,coordonatele specificate trebuie sa fie mai
mari decat zero(nu se poate apela gotoxy(0,0) ).
EXEMPLU: #include
#include
int x;
main()
{ for (x=1;x<10;x++)
{ textcolor(x);
textbackground(x+2);
gotoxy(x*5,x*7/4);
cprintf("TEXT");
sleep(1); }}
-265- [ conio.h-highvideo() si insline() ]
FUNCTIA highvideo()
-scrie caracterele accentuat(cu intensitate crescuta)
SINTAXA GENERALA este: void highvideo(void);
Functia utilizeaza pentru scriere caractere cu intensitate crescuta(accen-
tuate),in culoarea curenta.Functia nu afecteaza caracterele gata afisate
pe ecran,ci doar pe cele afisate dupa apelarea functiei.
Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.
Functia nu returneaza valori.
EXEMPLU: #include
#include
int x;
main()
{ clrscr();
for(x=1;x<12;x++);
{ textcolor(x);
textbackground(x+3);
gotoxy(x,x);
lowvideo();
cprintf("Text lowvideo (neaccentuat) \r\n");
gotoxy(40+x,x);
highvideo();
cprintf("Text highvideo (accentuat) \r\n");
sleep(2);
}}
FUNCTIA insline()
-insera o linie goala intr-o fereastra de tip text
SINTAXA GENERALA este: void insline(void);
Functia insera un rand gol(o linie goala),la pozitia actuala a cursorului,
in culoarea de fond curenta a textului din fereastra de tip text.Toate
liniile care urmeaza vor fi deplasate in jos cu o linie pana cand se
ajunge la marginea de jos a ferestrei(caz in care randurile vor fi
derulate sub marginea inferioara(devin invizibile).
EXEMPLU: #include
#include
main()
{ clrscr();
window(5,5,55,9);
textbackground(4);
cprintf("Functia insline(),insera o linie goala \r\n");
cprintf("si deplaseaza liniile subjacente,\r\n");
cprintf("asa cum se poate observa...\r\n");
gotoxy(1,2);
insline();
sleep(2);
gotoxy(1,4);
insline();
sleep(2);
insline();
sleep(2); }
Se poate utiliza si pentru a sterge din ferestre fragmente de text,etc.
-266- [ conio.h-kbhit() si lowvideo() ]
FUNCTIA kbhit()
-verifica tastele accesibile(starea tastelor)
SINTAXA GENERALA este: int kbhit(void);
Functia verifica daca exista o tasta accesibile.Oricare dintre tastele
apasate,poate fi pusa in evidenta cu getch() sau getche().
Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.
Functia returneaza o valoare pozitiva daca exista taste accesibile,sau
returneaza 0 in caz contrar.
EXEMPLU: #include
#include
int tasta;
main()
{ clrscr();
while( !kbhit() )
{ cprintf("Apasati orice tasta! \r\n");
sleep(1);
};
clrscr();
tasta=getche();
cprintf(" Tasta apasata este: %c \r\n",tasta);
sleep(3);
}
Puteti utiliza functia pentru a verifica daca nu exista taste blocate,sau
apasate involuntar,etc...Atentie totusi,deoarece se pot genera destul de
usor bucle infinite (atunci cind toate tastele sunt accesibile)!
Functia este utila atunci cand se asteapta un semnal de la tastatura.
FUNCTIA lowvideo()
-scrie caracterele cu intensitate redusa (neaccentuat)
SINTAXA GENERALA este: void lowvideo(void);
Functia scrie caracterele de text cu intensitate redusa (neaccentuat),in
culoarea de text curenta si cu culoarea de fond existenta.Functia nu
afecteaza caracterele deja afisate pe ecran ci doar pe acelea care vor
fi afisate dupa apelarea functiei.
Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.
Functia nu returneaza valori.
EXEMPLU: #include
#include
int x;
main()
{ clrscr();
for (x=1;x<16;x++)
{ textcolor(x);
lowvideo();
cprintf("Text scris cu lowvideo() \r\n");
sleep(1);
highvideo();
cprintf("Text scris cu highvideo() \r\n");
sleep(1);
clrscr();
}}
-267- [ conio.h-movetext() si normvideo() ]
FUNCTIA movetext()
-copiaza un text de pe ecran,in alta zona a ecranului
SINTAXA GENERALA este:
int movetext(int left,int top,int right,int bott,int destleft,int desttop);
Functia copiaza textul de pe ecran,cuprins in dreptunghiul delimitat prin
left,top,right si bottom,intr-o alta zona a ecranului de aceleasi dimen-
siuni cu cotul din stanga sus situat la coordonatele destleft si desttop.
Toate argumentele functiei sunt valori intregi si reprezinta coordonate
absolute ale ecranului (nu se raporteaza la ferstrele de tip text).
Functia este aplicabila doar in modul text al ecranului.Nu poate fi ape-
lata pentru aplicatiile Win32 si Win32 GUI.
Functia returneaza valori nonzero daca a fost executata cu succes,sau zero
in caz ca functia nu a fost executata(de exemplu daca se specifica coordo-
nate situate in afara ecranului.
EXEMPLU: #include
#include
int x;
main()
{ clrscr();
cprintf("Text 1: ...nr 1 \r\n");
cprintf("Text 2: ...nr 2 \r\n");
cprintf("Text 3: ...nr 3 \r\n");
for (x=1;x<5;x++)
{ movetext(0,0,16,3,x*10,x*5);
sleep(2);
}}
FUNCTIA normvideo()
-selecteaza caractere cu intensitate normala(neaccentuate)
SINTAXA GENERALA este: void normvideo(void);
Functia selecteaza caracterele normale de afisare a textului prin rese-
tarea atributelor textului la valorile initiale implicite(atat fondul cat
si culoarea si medelul de scriere).Functia nu afecteaza caracterele gata
afisate pe ecran ci doar pe acelea ce vor fi afisate dupa apelarea func-
tiei.Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.
Functia nu returneaza valori.
EXEMPLU: #include
#include
main()
{ clrscr();
cprintf("Text normal \r\n");
highvideo();
textbackground(4);
textcolor(14);
cprintf("Text accentuat \r\n");
normvideo();
cprintf("Text normal (neaccentuat) \r\n");
sleep(3);
}
Se utilizeaza mai ales pentru a reseta atributele implicite ale textului,
dupa ce s-au utilizat modificari de culoare sau intensitate.
-268- [ conio.h-putch() si puttext() ]
FUNCTIA putch()
-afiseaza un caracter pe ecran
SINTAXA GENERALA este: int putch(int c);
Functia afiseaza pe ecran,in fereastra de tip text curenta,caracterul spe-
cificat prin valoarea sa ASCII(numarul int c).Caracterul va fi afisat in
mod video direct,la pozitia cursorului,fara sa determine automat si un
retur de car.Afisarea se va face fie direct,fie prin apelarea unei functii
BIOS,in functie de valoarea la care este setata variabila _directvideo.
Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.
Functia returneaza caracterul afisat in caz ca a fost executata cu succes
sau EOF in caz de eroare.
EXEMPLU: #include
#include
int x;
main()
{ clrscr();
for (x=60;x<95;x++)
{ gotoxy(x-50,20);
putch(x);
sleep(1);
};
}
FUNCTIA puttext()
-copiaza pe ecran,un text salvat in tamponul de memorie
SINTAXA GENERALA este:
int puttext(int left,int top,int right,int bottom,void *source);
Functia copiaza pe ecran,in aria delimitata prin left,right,top si bottom,
datele din aria de memorie spre care pointeaza pointerul *source.
Toate coordonatele sunt coordonate absolute ale ecranului(nu depind de
ferstrele de tip text.Pozitia de referinta este coltul stanga sus (1,1).
Pentru fiecare caracter,se citesc cate doi bytes;primul contine caracterul
iar cel de al doilea contine atributele video.Astfel,spatiul din aria de
memorie este dublu fata de cel necesar pentru afisarea textului:
bytes=(nr coloane)x(nr randuri)x2
Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.
Functia returneaza o valoare nonzero daca a fost executata cu succes,sau
zero daca nu a putut fi executata(coordonate in afara ecranului,etc...).
EXEMPLU: #include
#include
int x;
char text[20];
main()
{ cprintf("BUNA ZIUA");
gettext(1,1,9,1,text);
clrscr();
for (x=1;x<25;x++)
{ puttext(x,x,x+9,x,text);
sleep(1); }
}
Se utilizeaza mai ales impreuna cu gettext(),ca si getimage()-putimage().
-269- [ textattr() si textbackground() ]
FUNCTIA textattr()
-seteaza atributele textului
SINTAXA GENERALA este: void textattr(int newattr);
Functia utilizeaza un numar de tip int,pentru a reseta atributele de afi-
sare a textelor.Functia nu poate fi apleata pentru aplicatiile Win32/GUI.
Functia permite setarea culorilor,atat pentru fond cat si pentru front.
Acelasi rezultat se poate obtine si prin combinarea functiilor textcolor()
si textbackground().Functia nu afecteaza caracterele deja afisate pe ecran
ci doar pe cele ce vor fi afisate dupa apelarea functiei.Numarul de tip
int utilizat pentru setare se formeaza dupa cum urmeaza:
7 6 5 4 3 2 1 0
FORMULA GENERALA: B b b b f f f f
Primele patru cifre seteaza culoarea de fond si pot fi formate din numere
cuprinse intre 0 si 7,respectiv numarul 128 pentru activarea bitului B,
care determina efectul blink(stralucirea imaginii)(in formula cifrele
pentru background sunt simbolizate cu b.
Urmatoarele patru cifre,detrmina culoarea de front(de scriere) si pot fi
formate din numere cuprinse intre 0 si 15(vezi codul culorilor).
Se pot utiliza si codurile simbolice ale culorilor.(Exemplu,daca se va
utiliza textattr(YELLOW) se va scrie cu galben pe fond negru).
Functia nu returneaza valori (nu este depanabila automat).
EXEMPLU: #include
#include
main()
{ clrscr();
cprintf("Exemple: \r\n");
textattr(12871212);
cprintf("text 1 \r\n");
textattr(193);
cprintf("text 2 \r\n");
textattr(128594);
cprintf("text 3 \r\n");
textattr(BROWN);
cprintf("text 4 \r\n");
sleep(5);
}
Prin combinarea a cate doua culori,se pot obtine un numar destul de mare
de nuante,atat pentru front,cat si pentru fond.Nu ezitati sa incercati,
dar respectand conventiile: maxim 8 cifre,0-7 pt. fond,0-15 pt.front in
care se include facultativ 128,daca doriti efect de stralucire.
FUNCTIA textbackground()
-selecteaza culoarea pentru font
SINTAXA GENERALA este: void textbackground(int newcolor);
Functia seteaza culoarea de fond a textului afisat.Nu poate fi apelata
pentru aplicatiile Win32 si Win32 GUI.Se pot selecta doar primele opt
culori din paleta grafica,cele cu numarul de cod cuprins intre 0 si 7.
Se poate utiliza atat numarul de cod,cat si codul simbolic al culorii,
dupa cum urmeaza: 0 (BLACK), 1 (BLUE), 2 (GREEN), 3 (CYAN), 4 (RED),
5 (MAGENTA), 6 (BROWN), 7 (LIGHTGRAY).Functia se aplica doar pentru textul
afisat dupa apelarea functiei.Functia nu returneaza valori.
-270- [ conio.h - textcolor() ]
EXEMPLU: #include
#include
int x;
main()
Dostları ilə paylaş: |
|
|