Kullanıcı Girişini Bekleyin: C Dili

Wait User Input C Language



C programlama dilinde bazı girdi fonksiyonları vardır. Bu fonksiyonları kullanarak kullanıcı girişi bekleyebiliriz. Bu derste giriş fonksiyonlarını ayrıntılı olarak tartışacağız.

Dizeyi Biçimlendir

Biçim dizesi, girilen verilerin biçimidir. Bu biçim, % işaretiyle başlar ve ardından biçim belirteci gelir. Biçim belirteci, hangi tür verinin okunmakta olduğu için kullanılan belirli bir karakterdir.







arg1, arg2, arg3… girilen verilerin saklanacağı değişkenlerin adresleridir.



scanf() İşlevi

Sözdizimi: int scanf (biçim dizgisi, arg1, arg2, arg3…)



Sık kullanılan belirteçlerden bazıları şunlardır:





  • NS – Tamsayı değerleri için kullanılır.
  • F – Kayan sayı için kullanılır.
  • C – Tek karakter değeri için kullanılır.
  • s – Dizeler için kullanılır.

Tek kullanma tarama() işlevi, kullanıcıdan bir veya birden fazla giriş alınabilir.

NS tarama() işlevi standart girdiden (klavye) girdi alır ve değeri bir değişkende saklar. İşlev, kullanıcı enter tuşuna basana kadar kullanıcı girişini bekler. Girilen değer bir arabellekte saklanıyor. Enter tuşuna basıldığında, tarama() fonksiyon okumaya başlar.



Örnek 1: Tamsayı Girişi

//Örnek1.c
#Dahil etmek

intana(){

intben;
baskı ('1. tamsayı değerini girin:');
tarama ('%NS', &ben);
baskı (Girdiniz : %d ',ben);

baskı ('2. tamsayı değerini girin:');
tarama ('%NS', &ben);
baskı (Girdiniz : %d ',ben);

dönüş 0;
}

Example1.c'de tamsayı değerleri girdiğimizde enter tuşuna bastığımızı gördük. NS tarama() fonksiyon değeri alır ve değişkende saklar. Boşlukla ayrılmış değerleri girersek, boşlukla karşılaşıldığında işlev döner, ancak boşluktan sonraki değerler giriş arabelleğinde kalır. Bu yüzden ikinci tarama() işlev kullanıcı girdisini beklemez, bunun yerine girdiyi arabellekten alır.

Örnek 2: Tek Karakter Girişi

//Örnek2.c
#Dahil etmek

intana(){

karakterC;
baskı ('Bir karakter girin:');
tarama ('% C', &C);
baskı ('Girdiniz: %c ',C);

dönüş 0;
}

Example2.c'de, kullandığımızda şunu gördük. % C belirleyici, tarama() fonksiyon birden fazla karakter girsek bile sadece bir karakter alır.

Örnek 3: Tek Karakter Girişi (Birden Çok Kez)

//Örnek3.c
#Dahil etmek

intana(){

karakterC;
baskı ('1. karakteri girin:');
tarama ('% C', &C);
baskı ('Girdiniz: %c ',C);

baskı ('2. karakteri girin:');
tarama ('% C', &C);
baskı ('Girdiniz: %c ',C);

dönüş 0;
}

Örnek 4 :

//Örnek4.c
#Dahil etmek

intana(){

karakterC;
baskı ('1. karakteri girin:');
tarama ('% C', &C);
baskı ('Girdiniz: %c ',C);

baskı ('2. karakteri girin:');
tarama ('% C', &C);
baskı ('Girdiniz: %c ',C);

dönüş 0;
}

Örnek 5: Dizi Girişi

//Örnek5.c
#Dahil etmek

intana(){

karakterisim[on beş];
baskı ('Adınızı giriniz: ');
tarama ('%s',isim);
baskı (Girdiniz: %s ',isim);

dönüş 0;
}

getc() Fonksiyon

Sözdizimi: int getc(DOSYA *akış)

getc() işlevi, FILE işaretçisinden (akım) bir karakter okumak için kullanılır. Klavyeden okumak için kullanmalıyız standart . Bu işlev, okunan karakterin tamsayı değerini döndürür.

Örnek 6:

//Örnek6.c
#Dahil etmek

intana(){

karakterC;
baskı ('1. karakteri girin:');
süre((C= getc (standart))==' ');
baskı ('Girdiniz: %c ',C);

süre( getc (standart)! =' ');

baskı ('2. karakteri girin:');
süre((C= getc (standart))==' ');
baskı ('Girdiniz: %c ',C);

dönüş 0;
}

getchar() Fonksiyon

Sözdizimi: int getchar(boşluk)

getchar() işlev şununla aynıdır getc() . Tek fark şu ki getc() işlev herhangi bir giriş akışından okuyabilir, oysa getchar() işlev yalnızca standart girdiden okur.

Örnek 7:

//Örnek7.c
#Dahil etmek

intana(){

karakterC;
baskı ('1. karakteri girin:');
süre((C= getchar ())==' ');
baskı ('Girdiniz: %c ',C);

süre( getchar ()! =' ');

baskı ('2. karakteri girin:');
süre((C= getchar ())==' ');
baskı ('Girdiniz: %c ',C);

dönüş 0;
}

Çözüm

Bu yazımızda C dilinde input fonksiyonlarının nasıl kullanıldığını gördük. Tüm bu işlevler giriş arabelleğinden girdi alınır ve bu işlevleri birden çok kez kullandığımızda arabelleği temizlememiz gerekir. Aksi takdirde, fonksiyonlar kullanıcı girdisini beklemez ve girdiyi tampondan alır.