C Programlama printf() Fonksiyonu

Standart C kütüphanesinin bir parçası olan printf() C Programlama Dili’nin genel amaçlı çıktı alma fonksiyonudur.

Girdi ve çıktı deyimleri gerçekte C dilinin bir parçası değildir. Yani, diğer programlama dillerinin tersine, C dilinin içine konmuş girdi/çıktı deyimleri yoktur. Girdi/çıktı işlemleri, her zaman, fonksiyonlar çağrılarak yapılır. Tabii ki, girdi/çıktı yapmak için kullanılan fonksiyonların programcı tarafından yazılmasına gerek yoktur. Hemen hemen bütün C ortamlarında girdi/çıktı fonksiyonları içeren standart kütüphaneler bulunmaktadır. Bu kütüphanelerde tanımlanmış bulunan fonksiyonlar (ile alabilecekleri argümanlar) ve ilgili
birtakım değişkenlerin bildirisi ise bir başlık dosyasına konur. stdio.h böyle bir başlık dosyasıdır ve herhangi bir standart girdi/çıktı fonksiyonu çağrılmadan veya değişkenleri kullanılmadan önce

#include <stdio.h>

yazılarak kaynak programın içine kopyalanması gerekir.

Kullanıcının girdi/çıktı yapması için, üç girdi/çıktı ara dosyasının tanımı önceden yapılmıştır. Bunlar şunlardır:

stdin standart girdi
stdout standart çıktı
stderr standart hata çıktısı

ve normal olarak kullanıcının klavye ve ekranına bağlanmıştır.

printf() Fonksiyonu Ekrana istediğimiz verileri yazmak içim kullanılan bir fonksiyondur. printf() fonksiyonu karakter dizisinden oluşan tek bir değeri veya farklı değişken ve sabitlerden oluşan birden fazla değeri ekrana yazdırmak için kullanılabilir.

printf() fonksiyonunu kullanırken yazdırmak istediğimiz değeri daha düzgün göstermek maksatlı bazı yardımcı komutlar (Kontrol karakterleri) vardır.

n

yeni satıra geç

b

geri alma

r

satırbaşı

t

1 (tab) ileri hareket

f

sayfa ilerletme

v

dikey durak

a
beep sesi çıkart

tek tırnak

çift tırnak

?

soru işareti

ters slash

ddd

sekizli kodu ddd (1, 2 veya 3 adet sekizli rakam)

xhh

onaltılı kodu hh (herhangi bir sayıda onaltılı rakam)

Örnek

#include “stdio.h”

main(){

printf(“C Programla Dili”);

return 0;
}

C Programlama printf() Fonksiyonu
Örnek

#include <stdio.h>
int main(void){

printf(” 1905n”);
printf(“312 +n”);
printf(“—–n”);
printf(“%d”, 1905+312);

return 0;
}

Yazım Kuralı : printf(“karakter dizisi formatı”,değişkenler);
Yazım kuralında birinci parametre karakter dizisi formatı, ikinci parametre değişkenler kısmıdır. üçüncü parametre ise karakter dizisi formatıdır.Karakter dizisi formatı üç kısımdan meydana gelir.
1.Literal String (Düz Metin) : Yazdırılmak istenen değerdir.
2.Escape Squence (Kontrol Karakterleri) : Değişkenlerin ve sabitlerin nasıl yazılacağını belirtmek ve imlecin alt satıra geçirilmesi gibi bazı basit işlemlerin gerçekleştirilmesi için kullanılır.
3.Conversion Specifier (Biçim Niteleyici) : % işaretinden oluşur (%d gibi). Yazdırılmak istenen değişkenin tipi, % işaretinden sonra belirtilir Yani % işaretinin hemen ardına yazılan bir veya bir kaç karakter, ilgili değişken ve sabitin nasıl yazılacağının bilgisidir.

Tip Karakteri

İşlevi

Tipi

%c

tek bir karakter

char

%d veya %i

işaretli ondalık tamsayı

int, short

%ld

uzun işaretli ondalık tamsayı

long

%u

işaretsiz ondalık tamsayı

unsigned int, unsigned short

%f

Gerçel Sayı

float, double

%e %E Gerçel Sayı double

%s

karakter dizisi (string)

char

%lu

işaretsiz uzun tamsayı

unsigned long

%x %X Hexa decimal sayılar
%o Octal sayılar

% işareti : Bir ifadenin biçim niteleyici olmabilmesi için % ile başlaması zorunludur.

Örnek
#include “stdio.h”

main(){

printf(“%s web sayfasi hazirlarken %d kitaptan ve %d ornek taslaktan yararlandim.”, “HTML ile”, 2, 3);

return(0);
}

C Programlama printf() FonksiyonuÖrnekte printf() fonksiyonu için 3 argüman tanımlanmıştır. printf() fonksiyonu (“”) işaretleri içindeki karakter dizisini taramaya başlar. İlk %s tip karakteri ile karşılaştığında buraya bir karakter dizisinin geleceğini anlar ve karakter dizisinden sonraki ilk argüman değerini okuyarak (HTML ile) ekrana yazar. Sonra ikinci tip karakteri karakter dizisi içindeki normal karakterleri ekrana yazar (web sayfası hazırlarken). %d tip karakteri ise bir int sabitinin geleceğini anlar ve karakter dizisinden sonraki ikinci değeri okuyarak (2) ekrana yazar. Karakter dizisinde yer alan bölümü ( kitaptan ve ) ekrana yazar. Bir sonraki %d yine bir int sabitinin geleceğini anlar ve karakter dizisinden sonraki üçüncü değeri okuyarak (3) ekrana yazar. Ve son olarak karakter dizisinin geriye kalan kısmı ekrana yazılır ( ornek taslaktan yararlandım) printf() fonksiyonunda kullanılan tip karakterleri yerine sadece sabit değerler değil aynı zamanda değişkenlerin değerleri de konabilir.

Örnek
#include “stdio.h”

main(){

int x1;
char x2;
x1 = 32;
x2 = ‘T’;
printf(“%d ve %c”, x1, x2);

return(0);
}

C Programlama printf() Fonksiyonu
Örnek x1 adlı int ve x2 adlı char değişkenlerine atananı 32 ve T sabit değerlerini printf() fonksiyonu ile ekrana yazmaktadır.

#include <stdio.h>
#include <stdlib.h>

int main(void){

/////////karakter///////////////
char karakter1=’A’;
char karakter2=34;

//////////////tam sayilar//////////////

//int sayi1=32.768; küsüratlı sayı kullanılamaz

int sayi1=32768; //%d

unsigned int sayi2=666666666; //%u

short int sayi3=2138; //%d

unsigned short int sayi4=13010; //%u

long int sayi5=2305198322512599414; //%ld

unsigned long int sayi6=-23051983225125994; //%lu

////////////ondalıklı sayılar

float sayi7=35.12345678849445674; //%f

double sayi8=6629387.5034986790485769305876093485760985760943857609438760934876; //%f

const float pi=3.14;

#define ResimBuyuklugu 640; //sabit deger atamalarinda kullanilir ve programin basinda yer alir

//ResimBuyuklugu=849; define ile daha önce tanimlandigi icin degistirilemez

printf(“char tipleri karakter1=%c karakter1=%d karakter2=%c karakter2=%d n”, karakter1, karakter1, karakter2, karakter2);

printf(“———int tipleri——— n”);
printf(“sayi1=%d n”, sayi1);
printf(“sayi2=%u n”, sayi2);
printf(“sayi3=%d n”, sayi3);
printf(“sayi5=%ld n”, sayi5);

printf(“%x n”, 0x09); //hex sayının decımal karsılıgını yazar

puts(“dede”); //string yazar

//printf(“%X n”, 5);

return 0;
}

int a = 0x0a;
printf(“%d”,a); /* outputs 10 (decimal) */
printf(“0x%x”,a); /* outputs 0xa */

void test() {

int num = 15;
printf(“%d t”, num); /* prints 15 */
printf(“0x%x t”, num); /* prints 0xf */
printf(“0%o n”, num); /* prints 017 (octal) */

num = 0xf;
printf(“%d t”, num); /* prints 15 */
printf(“0x%x t”, num); /* prints 0xf */
printf(“0%o n”, num); /* prints 017 (octal) */

num = 017;
printf(“%d t”, num); /* prints 15 */
printf(“0x%x t”, num); /* prints 0xf */
printf(“0%o “, num); /* prints 017 (octal) */

}

#include<stdio.h>
int main(){

long int decimalNumber;

printf(“Enter any decimal number: “);
scanf(“%d”,&decimalNumber);

printf(“Equivalent hexadecimal number is: %X”,decimalNumber);

return 0;
}

İleri Printf

Escape code Use
x1b[2J Clears the console
x1bn;mH or x1bn;mf Moves the cursor to row n, column m. The values are 1-based, and default to 1 (top left corner) if omitted
x1b?25l Hides the cursor (Note: the last character is lowercase ‘L’)
x1b?25h Shows the cursor.
x1b[;km Where k is the colour (text colours are from 30 to 37 and background colours are from 40 to 47). For the colour codes, see Table 2.
x1b[5m Blinks slowly
x1b[6m

Örnek

int main(){
printf(“x1b[34m”); // Blue background
printf(“x1b[2J”); // Clear the screen with blue bg
printf(“x1b[47m”); // White foreground
printf(“Hello, World!n”);
printf(“x1b[0m”); // Reset the console
return 0;
}

Eğer string işlemleri hakkında daha fazla bilgi isterseniz burayı tıklayabilirsiniz.

Kaynaklar
•http://www.ibrahimbayraktar.net/2013/12/c-programlama-printf-fonksiyonu.html
•http://www.opensourceforu.com/2014/03/write-conio-h-gnulinux/