printf
#include <stdio.h>
int printf(const char * formatukatea, argumentu1, argumentu2, ...);
Aipatzen ari garen printf() funtzioak stdout irteera estandarrean idazten du argumentuak adierazten duena (stdout irteera estandarra normalean pantaila da). Funtzio honek hainbat argumentu izan ditzake, bere lehen argumentua kate konstante bat da non bi motako elementuak bereizten diren:
- Lehenengo motako elementuak pantailan agertuko diren karaktereak dira.
- Bigarren motako elementuak argumentuak erakusteko modua deskribatzen duten formatu-zehaztatzaileak edo formatu-aginduak dira. Formatu-zehaztatzailea % sinbolotik hasten da, eta, ondoren, formatu-kodea doa.
Hona hemen printf() funtzioaren formatu-zehaztatzaileen taula, non eskubiko zutabearen bitartez adierazten da formatu-zehaztatzaile guzti horietatik zeintzuk erabiliko ditugun (BAI marka dituztenak):
Zehaz. | Deskribapena | Adibidea | Ikasi |
---|---|---|---|
%% | Inprimatu % sinboloa. | % | BAI |
%c | Karakterea. | w | BAI |
%s | Karaktere-katea. | kaixo | BAI |
%d | Osoko hamartarra zeinuarekin. | -9125 | BAI |
%i | Osoko hamartarra zeinuarekin. | +9125 | EZ |
%u | Osoko hamartarra zeinurik gabe. | 1299 | BAI |
%f | Zenbaki erreala edo puntu flotatzailea. | 74.9315 | BAI |
%e | Notazio zientifikoko zenbaki erreala (e xehea). | 3.926e+2 | BAI |
%E | Notazio zientifikoko zenbaki erreala (E larria). | 3.926E+2 | BAI |
%g | %e eta %f artean laburrena erabili. | 392.6 | EZ |
%G | %E eta %f artean laburrena erabili. | 392.6 | EZ |
%o | Zortzitarra zeinurik gabe. | 74 (60) | EZ |
%x | Hamaseitarra, zeinurik gabeak (letra xeheak). | 3c (60) | EZ |
%X | Hamaseitarra, zeinurik gabeak (letra larriak). | 3D (61) | EZ |
%p | Erakusle baten edukia pantailaratu. | b7000000 | EZ |
%n | Ezer inprimatuta. Dagokion argumentuak zeinudun int baten erakuslea izan behar du. Orain arte idatzitako karaktere kopurua adierazitako kokapenean gordetzen da. | EZ |
Gainera, h (short), l (long) eta L (long) aldatzaileak daude:
- h (short) aldatzailea d, i, u, o, x eta X datu-motei aplika dakieke, eta esaten digu datu-mota short int dela edo unsigned short int dela, kasuaren arabera.
- l (long) aldatzailea aurreko kasuetan aplika daiteke (d, i, u, o, x eta X), eta adierazten du datu-mota long int dela edo unsigned long int dela, baina, horrez gain...
- l (long) aldatzailea e, E, f eta g datu-motei ere aplika dakieke, datu-mota double dela adieraziz.
- L (long) aldatzailea e, E, f eta g datu-motei aplika dakieke, eta datu-mota long double dela adierazten du.
Bestalde, printf() funtzioak benetan idatzitako karaktere kopurua itzultzen du. Balio negatibo batek errore bat gertatu dela adierazten du.
Hona hemen printf() funtzioaren hainbat adibide:
/* printf() funtzioaren lehen hurbilketa: adibideak */ #include <stdio.h> int main() { short shZbk1 = 12890; // short int short shZbk2 = -29033; // short int unsigned short ushZbk = 12891; // unsigned short int long lZbk1 = 777000111; // long int long lZbk2 = -777000111; // long int unsigned long ulZbk = 777000222; // unsigned long int double dbZbk1 = 59.12345; double dbZbk2 = -59.12345; printf("\n\n"); printf("\t BEZ zerga %%%d-koa da \n", 12); printf("\t Alfabetoaren hasiera: %c | %c | %c | %c ... \n", 65, 'B', 0x43, 0104); printf("\t Zer moduz zabiltz? %s \n", "Ni, oso ondo"); printf("\n"); printf("\t Osokoak zeinuarekin: %d | %d \n", 9774, -7492); printf("\t Osokoak zeinuarekin: %i | %i \n", 9775, -7493); printf("\t Osokoak zeinurik gabe: %u | %u \n", 9776, -7494); printf("\t Osoko laburrak zeinuarekin: %hd | %hd \n", shZbk1, shZbk2); printf("\t Osoko laburra zeinurik gabe: %hu \n", ushZbk); printf("\t Osoko luzeak zeinuarekin: %ld | %ld \n", lZbk1, lZbk2); printf("\t Osoko luzea zeinurik gabe: %lu \n", ulZbk); printf("\n"); printf("\t Zenbaki errealak formaturik gabe: %f | %f \n", 59.12345, -59.12345); printf("\t Zenbaki errealak formatuarekin: %.3f | %.3f \n", 59.12345, -59.12345); printf("\t Zenbaki errealak formatuarekin: %10.3f | %10.3f \n", 59.12345, -59.12345); printf("\t Zenbaki errealak formatuarekin: %010.3f | %010.3f \n", 59.12345, -59.12345); printf("\t Zenbaki erreal luzeak (dobleak): %lf | %lf \n", 59.12345, -59.12345); printf("\t Zenbaki erreal luzeak (dobleak): %lf | %lf \n", dbZbk1, dbZbk2); printf("\n\n"); return 0; }
iruzkinik ez:
Argitaratu iruzkina