scanf
- C kursu
- Başlangıç
- Ders 31/116
- 4 dk
scanf ile kullanıcıdan girdi almayı öğrenirsin.
scanf ile girdi almak
scanf fonksiyonu klavyeden girdi okur. Biçim belirteci okunacak türü söyler; ikinci bağımsız değişken ise değişkenin adresi olmalıdır. Adres için & işareti kullanılır.
int age;
printf("Yaşın: ");
scanf("%d", &age);
printf("Merhaba, %d yaşındasın!\n", age);Ekrana önce Yaşın: yazılır, kullanıcı bir sayı girer ve Enter'a basar. scanf bu değeri age'in bellek adresine yazar. & işaretini unutmak yaygın bir hatadır; bu durumda program çökebilir.
scanf dönüş değeri
scanf başarılı okunan öğe sayısını döndürür. Kullanıcı sayı yerine harf girerse, okuma başarısız olur ve dönüş değeri 0 olur. Bu yüzden girdiyi denetlemek iyi bir alışkanlıktır.
int n;
int result = scanf("%d", &n);
if (result == 1) {
printf("Okundu: %d\n", n);
} else {
printf("Geçersiz girdi!\n");
}Bu örnekteki if deyimini sonraki bölümde detaylı göreceksin; şimdilik scanf'in dönüş değerini kontrol etmenin mümkün olduğunu bilmen yeterli.
Uygulama Yaş girdisi al ve yazdır
Bir C programı yaz. int age; tanımla. printf ile bir istem yazdır, scanf("%d", &age); ile girdi al, sonra printf ile sonucu %d belirteciyle yazdır. #include <stdio.h> başta olsun.
Başlangıç kodu
#include <stdio.h>
int main(void) {
// age tanımla, girdi al ve yazdır
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
int age;
printf("Yaşın: ");
scanf("%d", &age);
printf("Girdiğin yaş: %d\n", age);
return 0;
}Beklenen çıktı
Yaşın: Girdiğin yaş: 25
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Adres işaretini ekle
scanf("%d", ____age);
scanf("%d", &age);
Açıklama: & işareti age'in adresini verir.
2 scanf("%d", &n) çağrısı ne yapar?
int n;
scanf("%d", &n);- n'in adresini yazar
- Ekrana tam sayı yazar
- n'i sıfırlar
- Klavyeden tam sayı okur Doğru cevap
Açıklama: scanf klavyeden tam sayı okuyup n'e yazar.
3 scanf parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
%d |
Tam sayı okur |
&age |
Adres verir |
scanf |
Girdi fonksiyonu |
printf |
Çıktı fonksiyonu |