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
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.
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
main(){
printf("C Programla Dili");
return 0;
}
Örnek
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.
- Literal String (Düz Metin) : Yazdırılmak istenen değerdir.
- 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.
- 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
main(){
printf("%s web sayfasi hazirlarken %d kitaptan ve %d ornek taslaktan yararlandim.", "HTML ile", 2, 3);
return(0);
}
Örnek
main(){
int x1;
char x2;
x1 = 32;
x2 = 'T';
printf("%d ve %c", x1, x2);
return(0);
}
Ö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 <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;
}
printf("%d",a); /* outputs 10 (decimal) */
printf("0x%x",a); /* outputs 0xa */
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) */
}
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
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