Karaktere bat irakurtzeko orokorra den scanf() funtzioaren bitartez egin daiteke. Karaktere bat irakurtzeko espezifikoak diren lau funtzio hauek ikasiko ditugu: getchar(), getch() eta getche().
|
int getchar(void); int putchar(int c); |
getchar() funtzioak ENTER sakatzean teklatutik irakurritako karaktere bat irakurri eta ASCII balioa itzultzen du, EOF itzultzen du CRTL+Z sakatzean.
/* GETCHAR_funtzioa.cbp */
// getchar() funtzioak zenbaki oso bat itzultzen du, karakterearen ASCII balioa
#include <stdio.h>
int main()
{
char cLetra;
printf("\n\n Letra minuskulak irakurtzen...");
printf("\n");
do
{
printf("\n Alfabetoko letra bat eman ('a' eta 'z' artekoa). Amaitzeko 'X' sartu: ");
cLetra=getchar();
fflush(stdin); // teklatuaren bufferra garbitzeko Windows sistemetan
printf(" Jasotako karakterea: |%c| \n", cLetra);
}
while (cLetra != 'X');
printf("\n\n");
return 0;
}
putchar() funtzioak idatzitako karakterea itzultzen du. Idazketa-errore bat gertatzen bada, putchar()-ek EOF itzultzen du.
/* PUTCHAR_funtzioa.cbp */
// putchar() funtzioak idatzitako karakterea itzultzen du
#include <stdio.h>
int main()
{
int iKont;
char cKont;
printf("\n\n Larrien alfabetoa pantailaratzen...");
printf("\n");
for (iKont=65; iKont<=90; iKont++)
{
putchar(' '); // zuriunea, karaktereak banatzeko
putchar(iKont);
}
printf("\n\n Xeheen alfabetoa pantailaratzen...");
printf("\n");
for (cKont='a'; cKont<='z'; cKont++)
{
putchar(' '); // zuriunea, karaktereak banatzeko
putchar(cKont);
}
printf("\n\n");
return 0;
}
| int getch(void); |
Parametroak: funtzio honek ez du parametrorik onartzen.
Itzulera-balioa: funtzio honek tekla presionatuaren ASCII balioa itzultzen du.
getch() funtzio ez-estandarra da, eta conio.h fitxategian dago. Beste funtzio batzuk bezala, getch()-k teklatuaren karaktere bakarra irakurtzen du. Baina ez du bufferrik erabiltzen, eta, beraz, sartutako karakterea berehala itzultzen da, ENTER tekla sakatu arte itxaron gabe.
getch() funtzioari buruzko puntu garrantzitsuak:
- getch() funtzioak irteerako kontsola geldiarazten du tekla bat sakatu arte.
- Ez du bufferrik erabiltzen sarrera-karakterea gordetzeko.
- Sartutako karakterea berehala itzultzen da ENTER teklaren zain egon gabe.
- Sartutako karakterea ez da kontsolan agertzen.
- getch() funtzioa ezkutuko sarrerak onartzeko erabil daiteke, hala nola pasahitzak, kutxazain automatikoen PIN zenbakiak, etab.
/* GETCH_funtzioa.cbp */
// getch() funtzioak zenbaki oso bat itzultzen du, karakterearen ASCII balioa
#include <stdio.h>
#include <conio.h> // getch() funtzioarako
int main()
{
char cLetra;
printf("\n\n Letra minuskulak irakurtzen...");
printf("\n");
printf("\n Alfabetoko letra bat eman ('a' eta 'z' artekoa). Amaitzeko 'X' sartu:\n ");
do
{
cLetra=getch();
// fflush(stdin); ez da teklatuaren bufferra garbitu beharrik
printf("Jasotako karakterea: |%c|\n ", cLetra);
}
while (cLetra != 'X');
printf("\n");
return 0;
}
| int getche(void); |
getche() teklatuaren karaktere bakarra irakurtzen du eta berehala agertzen da irteera-pantailan, ENTER teklaren zain egon gabe. Funtzio hau, getch() bezala, ez da estandarra eta conio.h fitxategian dago.
/* GETCHE_funtzioa.cbp */
// getche() funtzioak zenbaki oso bat itzultzen du, karakterearen ASCII balioa
#include <stdio.h>
#include <conio.h> // getche() funtziorako
int main()
{
char cLetra;
printf("\n\n Letra minuskulak irakurtzen...");
printf("\n");
do
{
printf("\n Alfabetoko letra bat eman ('a' eta 'z' artekoa). Amaitzeko 'X' sartu: ");
cLetra=getche();
// fflush(stdin); ez da teklatuaren bufferra garbitu beharrik
printf("\n Jasotako karakterea: |%c|", cLetra);
}
while (cLetra != 'X');
printf("\n\n");
return 0;
}
iruzkinik ez:
Argitaratu iruzkina