#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;
}
Ö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.
#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ı