Her Yönüyle C
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Her Yönüyle C

Hepsi Burada
 
AnasayfaAnasayfa  PortalliPortalli  GaleriGaleri  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 GİRİS CIKIS FONKSYONLARI

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin


Erkek
Mesaj Sayısı : 804
Yaş : 35
Location : KoCaElİ
Kayıt tarihi : 29/10/07

Character sheet
Field:
GİRİS CIKIS FONKSYONLARI Left_bar_bleue100/100GİRİS CIKIS FONKSYONLARI Empty_bar_bleue  (100/100)

GİRİS CIKIS FONKSYONLARI Empty
MesajKonu: GİRİS CIKIS FONKSYONLARI   GİRİS CIKIS FONKSYONLARI Icon_minitimePtsi Kas. 12, 2007 2:50 am

GirişTemel giriş/çıkış fonksiyonları kullanılırken stdio.h başlık dosyası programın başına eklenmelidir. Bu fonsiyonlardan en çok kullanılanlar aşağıda verillmiştir. Fakat bunların dışında olan bir kaç fonksiyon daha vardır.

printf() FonksiyonuStandart C kütüphanesinin bir parçası olan printf() fonksiyonu, değişkenlerin içeriğini veya bit mesajı ekrana bir düzenle(formatla) standart çıkışa(stdout) yazmak için belki de en çok kullanılan fonksiyondur. Daha önce yazılan örnek programlarda printf() fonksiyonu kullanılmıştı. Şimdi bu fonsiyonun nasıl kullanıldığı açıklanacaktır. Genel yazım biçimi:
int printf(const char *format,...);


Basit olarak eğer ekrana Hata oluştu!.. şeklinde bir mesaj yazırmak için, printf fonksiyonu çağırmak ve fonsiyon içinde, çift tırnaklar arasına, bu iletiyi yazmak yeterli olacaktır. Yani: printf("Hata Oluştu!..");
Çoğu zaman ekrana, programda kullanılan bir değişkenin değeri yazdırılmak istenebilir. Örneğin ekranda bir alt satıra geçerek x tamsayı değişkeninin sayısal değerini ekrana yazdırmak istediğimizi varsayalım. Bu durumda printf() fonksiyonun kullanımı şu şekilde olacaktır:
printf("\nx in değeri %d dir",x);
x=12 için bu işlemin sonucunda ekrana şu ileti çıkacaktır: x in değeri 12 dir
Bu örnekte printf fonsiyonuna iki parametre aktarılmıştır. Birincisi ekranda gösterilecek ve çift tırnaklar arasına yazılan ifadeler, ikincisi ise ekranda sayısal değeri gösterilmek istenen değişken (x). Ayrıca bir alt satıra geçme işlemi \n ile gerçekleştirilmiştir.
*format üç kısımdan oluşmaktadır:


  • Düz metin (literal string): yazdırılmak istenen ileti.
  • Konrol karakterleri (escape squence): 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. Bu karakterler Tablo 4.1'de listelenmiştir.
  • Tip belirleyici (conversion specifier): % işaretinden oluşur(%d gibi). Ekrana yazdırılmak istenen değişkenin tipi, % işaretinden sonra belirtilir (Bkz. Tablo 4.2) Yani % işaretinin hemen ardına yazılan bir veya bir kaç karakter, ilgili değişken ve sabitin nasıl yazılacağını düzenleme bilgisidir.


Tablo 4.1: Kontrol karakterleri



Karakter
Anlamı

\a
Ses üretir(alert)

\b
imleci bir sola kaydır(backspace)

\f
Sayfa atla. Bir sonraki sayfanın başına geç(formfeed)

\n
Bir alt satıra geç(newline)

\r
Satır başı yap(carriage return)

\t
Yatay TAB(Horizontal TAB)

\v
Dikey TAB(vertical TAB)

\"
Çift tırnak karakterini ekrana yaz

\'
Tek tırnak karakterini ekrana yaz

\\
\ karakterini ekrana yaz

%%
% karakterini ekrana yaz
Tablo 4.2: Tip karakterleri



Tip Karakteri
Anlamı
Tip

%c
tek bir karakter
char

%d
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

%s
karakter dizisi (string)
char

%lu
işaretsiz uzun tamsayı
unsigned long

Tip karakterlerini kullanarak, not=12, pi=3.14 ve kr='A' değişkenleri printf() fonsiyonu ile ekrana yazıdırılmak istensin. Bunun için: ...
int not=12;
float pi=3.14;
char kr='A';
...
printf("Not=%d , pi=%f ve kr=%c dir",not,pi,kr);
...
printf() fonksiyonu ile yazdırabilecek ifadeler için bir sınır yoktur. parametreler herhangi bir C deyimi olabilir. Örneğin x ve y nin toplamı söyle yazılabilir: z = x + y;
printf("%d",z);
Bu ifade şu şekilde de yazılabilir: printf("%d",x+y);


printf fonksiyonu kullanımı Program 4.1'de verilmiştir.
Program 4.1: printf() fonksiyonunun kullanımı




[color=gray] 1:
/* 04prg01.c: sayısal değerleri ekrana yazdırmak için printf fonksiyonunun kullanımı */
2:
3: #include <stdio>;
4:
5: /* global değişken tanımlamaları */
6: int a = 2, b = 10, c = 50;
7: float f = 1.05, g = 25.5, h = -0.1 ,yuzde;
8:
9: main()
10: {
11: printf("3 tamsayi : %d %d %d\n", a, b, c);
12: printf("3 tamsayi [TAB] : %d \t%d \t%d\n", a, b, c);
13:
14: printf("\n");
15:
16: printf("3 reel sayi (yanyana) : %f %f %f\n", f, g, h);
17: printf("3 reel sayi (altalta) : \n%f\n%f\n%f\n\n", f, g, h);
18:
19: yuzde = 220 * 25/100.0;
20: printf("220 nin %%25 i %f dir\n", yuzde);
21: printf("%f/%f isleminin sonucu = %f\n", g, f, g / f);
22:
23: printf("\nprogram sonunda beep sesi cikar...\a");
24:
25: return 0;
[color:71df=gray:71df]26: }
Program 4.1, printf() fonksiyonu ile değişkenlerin ekrana nasıl yazıldığını göstermektedir. 6. ve 7. satırlarda değişkenler global olarak bildirilmiştir. Program içinde \t, \n ve \a kontrol karakterlerinin nasıl kullanıldığı çok açıktır.

DERLEME ve ÇALIŞTIRMA



Turbo C (MS DOS)
GCC (Linux)

C:\TC> tcc 04prg01.c
C:\TC> 04prg01
$ gcc 04prg01.c -o 04prg01
$ ./04prg01

ÇIKTI




3 tamsayi : 2 10 50
3 tamsayi [TAB] : 2 10 50

3 reel sayi (yanyana) : 1.050000 25.500000 -0.100000
3 reel sayi (altalta) :
1.050000
25.500000
-0.100000

220 nin %25 i 55.000000 dir
25.500000/1.050000 isleminin sonucu = 24.285715

program sonunda beep sesi cikar...
printf fonksiyonunun geri dönüş değeri int tipindedir. Bu geri dönüş değeri çıktının bayt sayısıdır. Yani, printf fonksiyonu, *format ile tanımlanmış karakter topluluğunun kaç bayt olduğu hesaplar[6]. Program 4.2, printf'in bu yönünüde ortaya çıkaran bir programdır.

Program 4.2: printf() fonksiyonunun kullanımı




[color=gray] 1:
/* 04prg02.c: printf fonksiyonunun geri dönüş değerini gösterir */
2:
3: #include <stdio>
4:
5: main()
6: {
7: int karSay;
8: int sayi = 1234;
9:
10: karSay = printf("Ugurlu sayim = %d\n",sayi);
11: printf("Katarin uzunlugu : %d dir",karSay);
[color:71df=gray:71df]12: }
10. satırdaki işlemle, hem ekrana Ugurlu sayim = 1234 iletisi bastırılmakta, hem de karSay değişkenine bu iletinin uzunluğu atanmaktadır. Ekrana basılan katarın uzunluğu (\n karakteri dahil) 20 dir.

DERLEME ve ÇALIŞTIRMA



Turbo C (MS DOS)
GCC (Linux)

C:\TC> tcc 04prg02.c
C:\TC> 04prg02
$ gcc 04prg02.c -o 04prg02
$ ./04prg02

ÇIKTI




Ugurlu sayim = 1234
Katarin uzunlugu : 20 dir

puts() Fonksiyonu puts(*string);
*katar olarak belirtilen karakter topluluğunu ekrana yazdıktan sonra, imleci alt satıra geçirir. Örneğin:
puts("puts() fonksiyonunun gösterimi!");

şekinde kullanılırsa çıkış şöyle olacaktır. puts() fonksiyonunun gösterimi!
puts() fonksiyonu Tablo 4.1 de verilen kontrol karakterleri ile kullanılabilir.
puts("Bu birinci satır...\nBu ikinci satır.");

Bu birinci satır...
Bu ikinci satır.

scanf() FonksiyonuBirçok programda ekrana verilerin yazılmasının yanısıra klavyeden veri okunması gerekebilir. scanf() fonksiyonu bu amaçla kullanılan fonksiyondur. printf() gibi scanf() fonksiyonuda Tablo 4.1 ve Tablo 4.2'de verilen karakterleri kullanır. Örneğin klaveden bir x tamsayısı okumak için:
scanf("%d",&x);
satırını yazmak yeterli olacaktır. Burada & işareti adres operatörü olarak adlandırılır ve Ders 10: Pointerler kısmında ayıntılı olarak açıklanacaktır. Klavyeden iki farklı sayı okunmak istendiğnde scanf() fonksiyonu şöyle kullanılır:
scanf("%d %f",&x,&y);
veriler klavyeden 16 1.568
yada 16 1.568
veya 16
1.568

şekilinde girilebilir. Program 4.3'de scanf() fonsiyonunun kullanımı gösterilmiştir.
Program 4.3: scanf() fonksiyonun kullanımı




[color=gray] 1:
/* 04prg03.c: scanf() fonksiyonu ile int, char ve float tipindeki verilerin okunması */
2:
3: #include <stdio>
4:
5: main()
6: {
7: int x;
8: float y;
9: char c;
10:
11: printf("Bir tamsayi girin : "); scanf("%d",&x);
12: printf("Bir karakter girin : "); scanf("%s",&c);
13: printf("Bir reel sayi girin: "); scanf("%f",&y);
14:
15: printf("\n\ttamsayi : %d",x);
16: printf("\n\tkarakter : %c",c);
17: printf("\n\treel sayi : %f\n",y);
18:
19: puts("girdin.");
20: puts("Bye.");
[color:71df=gray:71df]21: }

DERLEME ve ÇALIŞTIRMA



Turbo C (MS DOS)
GCC (Linux)

C:\TC> tcc 04prg03.c
C:\TC> 04prg03
$ gcc 04prg03.c -o 04prg03
$ ./04prg03

ÇIKTI




Bir tamsayi girin : 236
Bir karakter girin : H
Bir reel sayi girin: 177.778

tamsayi : 236
karakter : H
reel sayi : 177.778000
girdin.
Bye.

gets() FonksiyonuKlavyeden bir karakter topluluğu (katar) okumak için kullanılır. Okuma işlemi yeni satır karakteriyle(\n) karşılasılıncaya kadar sürer. puts()-gets() arsındaki ilişki, printf() - scanf() arasındaki gibidir. puts() ile ekrana bir katar yazdırılırken, gets() ile okunur. Örneğin:
...
char ktr[10];
puts("Bir şeyler yazın:");
gets(ktr);
...
Yukarıdaki program parçası, klavden girilen karakterlerin, gets() fonksiyonu ile ktr katarına aktarmak için kullanılır.
ktr[10] şeklindeki kullanım girilen katarın içerisinden ilk 10 karakteri değerlendir manasındadır. Bu kullanım daha sonra açıklanacaktır.

getchar() FonksiyonuStandart girişten bir karakter okur. Programı istenen bir yerde dudurup, bir karakater girinceye kadar bekletir.Örneğin:
...
for(i=0;i<10;i++)
{
getchar();
printf("%d\n",i);
}
...
Yukarıdaki program parçası 0-9 arası sayıları sırasıyla ekranda göstermek için kullanılır. Fakat her rakamı yazdırılmadan önce klavyeden herhangi bir karakter girip [Enter] tuşuna basılması beklenir. Bu bekleme getchar() fonksiyonu ile gerçekleştirilir.

Formatlı ÇıktıBundan önceki kısımlarda kullanılan programlardaki değişkenler serbest formatta (derleyicinin belirlediği format) yazılmıştır. Bazen giriş ve çıkışın formatı kullanıcı tarafından belirlenmesi gerekebilir. Bu işlem:

Tamsayılarda %d yerine %wd
Reel sayılarda %f yerine %w.kf
Stringlerde %s yerine %ws
biçimindeki kullanım ile sağlanır. Burada w yazılacak olan sayının alan genişliği olarak adlandırılır. Reel bir değişken ekrana yazılacaksa, değişkenin virgülden sonra kaç basamağının yazdırılacağı k sayısı ile belirlenir (w>k+2 olmalı).
int i=583,j=1453;

printf("%d %d\n",i,j);
printf("%5d %8d\n",i,j);
program parçası çalıştırıldığında aşağıdaki sonuç gözlenir: 583 1453
583 1453
Birinci satır serbest formatta ikinci satır ise formatlı yazılmıştır. i değişkeninin tuttuğu 583 sayısı %5d formatıyla yazdırılınca, bu sayı için 5 alan genişliği tanımlanır arakasından sağdan başlayarak sayı bu alana yazılır. Yani:
12345
-----
583
Benzer olarak ikinci sayıda 12345678
--------
1453
Reel sayılarda iş biraz daha karışık. Örneğin: int x=123.456;

printf("%f\n",x);
printf("%8.2f\n",x);
program parçası çalıştırıldığında aşağıdaki sonuç gözlenir: 123.456001
123.46
Birinci satır serbest formatta ikinci satır ise formatlı yazılmıştır. İkinci satırda x değişkeni için ayrılan alan genişliği 8 ve noktadan sonra 2 basamağa kadar hassasiyet önemsenmiştir. Dikkat edilirse noktadan sonra sayı uygun bir şekilde yuvarlanmış ve sayı sağa dayalı olarak yazılmıştır. Formatı ayrıntılı olarak incelersek:
12345678
--------
123.46

Program 4.4: printf() in formatlı kullanımı




[color=gray] 1:
/* 04prg04.c: Formatlı çıktı */
2:
3: #include <stdio>
4:
5: main()
6: {
7: float x = 7324.25;
8: int i = 1299;
9: char c[15] = "Merhaba C";
10:
11: printf("%10.5f\n",x);
12: printf("%10d\n" ,i);
13: printf("%10s\n" ,c);
14: }
[color:71df=gray:71df]15:

DERLEME ve ÇALIŞTIRMA



Turbo C (MS DOS)
GCC (Linux)

C:\TC> tcc 04prg04.c
C:\TC> 04prg04
$ gcc 04prg04.c -o 04prg04
$ ./04prg04

ÇIKTI




7324.25000
1299
Merhaba C
Sayfa başına dön Aşağa gitmek
https://cprogramlama.yetkin-forum.com
 
GİRİS CIKIS FONKSYONLARI
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» TEMEL KUTUPHANE FONKSYONLARI

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Her Yönüyle C :: C Programlama :: C Konu Anlatımları-
Buraya geçin: