Argüman doğrulama
- C kursu
- Orta seviye
- Ders 91/116
- 5 dk
Komut satırı argümanlarını doğrulamayı öğrenirsin.
Argüman sayısı kontrolü
Bir program çalışırken genellikle en az bir argüman bekler. argc değerini denetleyerek eksik girdiyi erken yakalayıp kullanıcıya anlamlı bir ileti gösterirsin.
Örnek: if (argc < 2) { printf("Hata: argüman eksik\n"); return 1; }. Burada argc < 2, yalnızca program adı varsa (kullanıcı argümanı yoksa) doğrudur. Hata iletisini ekrana yazdırıp return 1 ile programı bozar; böylece geri kalan kod çalışmaz. Bu, CLI araçlarında en yaygın doğrulama desenidir ve kullanıcıyı doğru kullanıma yönlendirir.
Kullanım iletisi
Hata durumunda yalnızca "eksik" demek yerine, programın nasıl kullanılacağını gösteren bir kullanım iletisi yazdırırsın. Bu, kullanıcının hatayı düzeltmesini sağlar.
Örnek: printf("Kullanım: %s <dosya>\n", argv[0]);. Burada argv[0], programın adını verir; böylece ileti programın nasıl çağrıldığına uyum sağlar. İleti kısa ve net olmalıdır: beklenen argümanların sırasını ve türünü belirt. İyi tasarlanmış kullanım iletileri, araç belgelerinin temelidir ve kullanıcıyı deneme yanılma yerine doğru komutu yazmaya yönlendirir.
Uygulama Argüman doğrulama yaz
int argc = 1; ile simüle edilmiş bir argüman sayısı tanımla. if (argc < 2) ile kontrol et; koşul doğruysa printf("Hata: argüman eksik\n"); yazdır ve return 1; ile çık. Aksi halde printf("Tamam\n"); yazdır ve return 0; ile bitir.
Başlangıç kodu
#include <stdio.h>
// argc değişkenini 1 olarak tanımla
// argc < 2 ise hata yazdır ve 1 ile çık
// değilse "Tamam" yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
int argc = 1;
if (argc < 2) {
printf("Hata: argüman eksik\n");
return 1;
}
printf("Tamam\n");
return 0;
}Beklenen çıktı
Hata: argüman eksik
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 argc < 2 ne zaman doğrudur?
- Kullanıcı hiç argüman vermediğinde Doğru cevap
- Kullanıcı iki argüman verdiğinde
- Program derlenemediğinde
- argc sıfıra eşit olduğunda
Açıklama: argc < 2, yalnızca program adı varsa (kullanıcı argümanı yoksa) doğrudur.
2 Doğrulama parçalarını eşle
| Kavram | Anlamı |
|---|---|
argc < 2 |
Eksik argüman kontrolü |
argv[0] |
Program adı |
return 1 |
Hata çıkışı |
printf |
İleti yazdırma |
3 Hata iletisini tamamla
printf("Hata: eksik %d
", ____);
printf("Hata: eksik %d
", argc);
Açıklama: argc değerini yazdırmak hatanın sebebini gösterir.