C Programlama scanf() Fonksiyonu
C Programlama scanf() Fonksiyonu
C Programlama
scanf() Fonksiyonu : Programların çalışma esnasında veri girişine ihtiyaç duyabilirler. Kullanıcıların girdiği verileri işleyip değerlendirmemize yarayan fonksiyonlarda giriş fonksiyonları adı verilir. Örneğin printf fonksiyonu nasıl verinin ekrana yazdırılmasını sağlayan bir çıkış fonksiyonu ise scanf de printf fonksiyonunuda bunun tam tersi olarak düşünebiliriz.
Resimde görüldüğü gibi scanf fonksiyonunun ilk parametresi bir karakter disidir. Bu parametre kullanıcıdan hangi veri girişlerinden kaç tane beklendiğini derleyiciye anlatır. %d ifadesi bizden bir tamsayı istendiğini belirtirken, %d %f %d ifadesi sırasıyla bir tamsayı, bir ondalık sayı ve bir tamsayı olmak üzere üç adet değer istendiğini ifade eder. scanf fonksiyonunun sonraki parametreleri ise değerlerin depolanacağı değişkenlerin bellek adresleri olmalıdır.
Örnek scanf Fonksiyonu
#include <stdio.h>
int main(int argc, char** argv)
{
int s1,s2;
printf("2 adet sayi girisi yapiniz:");
scanf("%d %d", &s1, &s2);
printf("girilen sayilar:%d ve %d", s1,s2);
return 0;
}
Programın Çıktısı
Örnekte scanf ile iki tamsayı alınmış ve alınan değerler prinf ile ekrana yazdırılmıştır.Fonksiyonun ilk parametresinde %d %d ile kullanıcıdan arada boşluk bırakılarak iki adet tam sayı girilmesi istenmiştir.İkinci ve üçüncü parametrelerde ise değerlerin tutulacağı bellek adresleri s1,s2 olarak belirlenmiştir. Bir değişkenin hemen önüne & işareti geldiğinde o değişken bellek adresini referans göstermektedir. Bunun nedeni scanf fonksiyonu bir giriş fonksiyonu olması nedeniyle değişkenlerin değerleriyle değil bellek adreslerini kullanacak şekilde tasarlanmış olmasıdır. Bu durum diziler için geçerli değildir! Çünkü dizi (string) türünden değişkenlerde dizinin adı zaten o dizinin ilk elemanının bellek adresini gösterir. Böylelikle dizi türünden değişkenlerde & işareti kullanımına gerek yoktur.
Örnek scanf Fonksiyonu
#include <stdio.h>
int main(int argc, char** argv)
{
char marka[30];
printf("Lutfen monitorunuzun markasini giriniz:");
// scanf("%s", &marka); Bu sekilde kullanim hatalidir//
scanf("%s", marka); //Bu sekilde kullanim dogrudur// printf("Monitorunuzun markasi %s", marka); return 0; }
Programın Çıktısı
Örnek scanf Fonksiyonu
#include <stdio.h>
void main (void)
{
int s1;
double s2;
float s3;
char isim[20], web[30];
printf("Lutfen integer bir deger giriniz:");
scanf("%d", &s1);
printf("Girilen integer deger %d dir.nn", s1);
printf("Lutfen double bir deger giriniz:");
scanf("%lf", &s2);
printf("Girilen double deger %g idinn", s2);
printf("Lutfen integer ve bir float deger giriniz:");
scanf("%d %f", &s1, &s3);
printf("Girilen degerler %d ve %f idi.n", s1,s3);
printf("isminizi giriniz:");
scanf("%s", &isim);
printf("web adresinizi giriniz: ");
scanf("%s", &web);
printf("Girilen isim: %sn", isim);
printf("Girilen web adresi:%sn", web);
system("pause");
return(0);
}
Programın Çıktısı
scanf() Fonksiyonu : Programların çalışma esnasında veri girişine ihtiyaç duyabilirler. Kullanıcıların girdiği verileri işleyip değerlendirmemize yarayan fonksiyonlarda giriş fonksiyonları adı verilir. Örneğin printf fonksiyonu nasıl verinin ekrana yazdırılmasını sağlayan bir çıkış fonksiyonu ise scanf de printf fonksiyonunuda bunun tam tersi olarak düşünebiliriz.
Resimde görüldüğü gibi scanf fonksiyonunun ilk parametresi bir karakter disidir. Bu parametre kullanıcıdan hangi veri girişlerinden kaç tane beklendiğini derleyiciye anlatır. %d ifadesi bizden bir tamsayı istendiğini belirtirken, %d %f %d ifadesi sırasıyla bir tamsayı, bir ondalık sayı ve bir tamsayı olmak üzere üç adet değer istendiğini ifade eder. scanf fonksiyonunun sonraki parametreleri ise değerlerin depolanacağı değişkenlerin bellek adresleri olmalıdır.
Örnek scanf Fonksiyonu
#include <stdio.h>
int main(int argc, char** argv)
{
int s1,s2;
printf("2 adet sayi girisi yapiniz:");
scanf("%d %d", &s1, &s2);
printf("girilen sayilar:%d ve %d", s1,s2);
return 0;
}
Programın Çıktısı
Örnekte scanf ile iki tamsayı alınmış ve alınan değerler prinf ile ekrana yazdırılmıştır.Fonksiyonun ilk parametresinde %d %d ile kullanıcıdan arada boşluk bırakılarak iki adet tam sayı girilmesi istenmiştir.İkinci ve üçüncü parametrelerde ise değerlerin tutulacağı bellek adresleri s1,s2 olarak belirlenmiştir. Bir değişkenin hemen önüne & işareti geldiğinde o değişken bellek adresini referans göstermektedir. Bunun nedeni scanf fonksiyonu bir giriş fonksiyonu olması nedeniyle değişkenlerin değerleriyle değil bellek adreslerini kullanacak şekilde tasarlanmış olmasıdır. Bu durum diziler için geçerli değildir! Çünkü dizi (string) türünden değişkenlerde dizinin adı zaten o dizinin ilk elemanının bellek adresini gösterir. Böylelikle dizi türünden değişkenlerde & işareti kullanımına gerek yoktur.
Örnekte scanf ile iki tamsayı alınmış ve alınan değerler prinf ile ekrana yazdırılmıştır.Fonksiyonun ilk parametresinde %d %d ile kullanıcıdan arada boşluk bırakılarak iki adet tam sayı girilmesi istenmiştir.İkinci ve üçüncü parametrelerde ise değerlerin tutulacağı bellek adresleri s1,s2 olarak belirlenmiştir. Bir değişkenin hemen önüne & işareti geldiğinde o değişken bellek adresini referans göstermektedir. Bunun nedeni scanf fonksiyonu bir giriş fonksiyonu olması nedeniyle değişkenlerin değerleriyle değil bellek adreslerini kullanacak şekilde tasarlanmış olmasıdır. Bu durum diziler için geçerli değildir! Çünkü dizi (string) türünden değişkenlerde dizinin adı zaten o dizinin ilk elemanının bellek adresini gösterir. Böylelikle dizi türünden değişkenlerde & işareti kullanımına gerek yoktur.
Örnek scanf Fonksiyonu
Programın Çıktısı
Örnek scanf Fonksiyonu
Programın Çıktısı
#include <stdio.h> int main(int argc, char** argv) { char marka[30]; printf("Lutfen monitorunuzun markasini giriniz:"); // scanf("%s", &marka); Bu sekilde kullanim hatalidir//
scanf("%s", marka); //Bu sekilde kullanim dogrudur// printf("Monitorunuzun markasi %s", marka); return 0; }
Programın Çıktısı
Örnek scanf Fonksiyonu
#include <stdio.h> void main (void) { int s1; double s2; float s3; char isim[20], web[30]; printf("Lutfen integer bir deger giriniz:"); scanf("%d", &s1); printf("Girilen integer deger %d dir.nn", s1); printf("Lutfen double bir deger giriniz:"); scanf("%lf", &s2); printf("Girilen double deger %g idinn", s2); printf("Lutfen integer ve bir float deger giriniz:"); scanf("%d %f", &s1, &s3); printf("Girilen degerler %d ve %f idi.n", s1,s3); printf("isminizi giriniz:"); scanf("%s", &isim); printf("web adresinizi giriniz: "); scanf("%s", &web); printf("Girilen isim: %sn", isim); printf("Girilen web adresi:%sn", web); system("pause"); return(0); }
Programın Çıktısı