printf
printf()-funktio on C-kielen tulostuskäsky. Se on esitelty stdio.h -tiedostossa, joten käsky #include<stdio.h>
pitää olla ohjelman alussa.
printf ja tulostuksen muotoilu
printf argumenttissa olevine koodien merkitys:
merkki |
selitys |
englanniksi |
---|---|---|
\b |
siirto vasemmalle |
backspace |
\f |
arkin poisto |
form feed |
\n |
uusi rivi |
line feed |
\r |
telan palautus |
carriage return |
\t |
vaakasuora tabulointi |
horizontal tab |
\" |
lainausmerkki |
double quote |
\' |
heittomerkki |
single quote |
\0 |
null |
null |
|
vasemmalle vino viiva |
backslash |
\v |
pystysuora tabulointi |
vertical tab |
\a |
hälytys |
alert |
\N |
oktaalivakio |
octal constant |
\xN |
heksadesimaalivakio |
hexadesimal constant |
Muotoilumerkkijono
muotoilu |
tyyppi |
selitys |
---|---|---|
%c |
char |
yksi merkki |
%s |
char[] |
merkkijono (päättyy NULL-merkkiin) |
%d |
int |
kokonaisluku |
%i |
int |
kokonaisluku |
%u |
unsigned int |
etumerkitön kokonaisluku |
%l |
long |
pitkä kokonaisluku |
%f |
float |
reaaliluku |
%lf |
double |
kaksoistarkkuuden reaaliluku |
Kaikki tulostusmuotoilut laitetaan lainausmerkien sisälle -merkistä printf-käsky tietää, että kyseessä on muotoilu.
Esimerkkijä
kokonaislukumuuttujan (int) tulostuksesta:
int auton_nopeus=120; // km/h printf("Auton nopeus on %d", auton_nopeus);
Tai useamman muuttujan tulostus:
char Juttu[]="tulostan lukuja"; int Luku=5; float Reaaliluku=45.7; printf("\nJuttuja: %s, numeroita %d, Reaalilukuja %f", Juttu, Luku, Reaaliluku);
Tuloste on:
Juttuja: tulostan lukuja, numeroita 5, Reaalilukuja 45.7
Seuraavassa on esimerkki, jossa on käytetty printf-käskyn eri muotoja sekä tyypinmuunnoksia jne.
/*Ohjelma, joka tulostaa antamasi reaaliluvun kokonaislukuna, heksalukuna sekä oktaalilukuna. */ #include<stdio.h> #include<conio.h> #include<stdlib.h> void main(void) { double Reaaliluku; int Kokonaisluku,Laskuri=0; char Merkkeja[100]; char Merkki; //silmukka, jossa ollaan niin kauan kuin käyttäjä syöttää luvun 555 while(Kokonaisluku != 555) { system("cls");//putsataan ruutu printf("Anna reaaliluku: "); do { //tieto näppikseltä Merkki=getche(); //laitetaan Merkki, Merkkeja vektoriin Merkkeja[Laskuri]=Merkki; Laskuri=Laskuri+1;//lisätään paikkaa vektorissa } while(Laskuri<8 && Merkki!=13); //päätetään merkkijono Merkkeja[Laskuri]=0; Laskuri=0; //muutetaan merkkijono reaaliluvuksi Reaaliluku = atof(Merkkeja); printf("\nReaaliluku on %.3f ",Reaaliluku); //Muutetaan reaaliluku kokonaisluvuksi Kokonaisluku=(int) Reaaliluku; printf("\nKokonaisluku on %d ",Kokonaisluku); //Tulostus 16-kantaisena lukuna printf("\nHeksaluku on %x ",Kokonaisluku); //Tulostus 8-kantaisena lukuna printf("\nOktaaliluku on %o ",Kokonaisluku); printf("\nPaina Enter"); getch(); } }