CodeBlanks Logo Icon CodeBlanks

Dosya açık kontrolü

is_open() ile dosya açma kontrolünü öğrenirsin.

is_open ile güvenli açma

Bir dosya açıldığında başarılı olup olmadığını is_open() ile kontrol edersin. Dosya yoksa veya izin yoksa is_open() false döner.

Örnek: std::ifstream in("olmayan.txt"); if (in.is_open()) { /* oku */ } else { std::cout << "Açılamadı"; }. Bu desen, programın çökmeden hata vermesini sağlar. Açık kontrolü yapmadan >> çağırırsan dosya açılmamışsa okuma sessizce başarısız olur ve program yanlış çalışır. Bu yüzden her dosya açışında is_open() kontrolü yapmak sağlam bir alışkanlıktır.

Açılmayan dosyayı ele al

is_open() false döndüğünde program bir hata iletisi yazdırmalı ve dosyayı okumamalıdır. Aksi halde >> sessizce başarısız olur.

Örnek: if (!in.is_open()) { std::cout << "Hata"; return 1; }. Bu, dosya bulunamadığında programı erken sonlandırır. ! operatörü ile is_open() sonucunu ters çevirirsin. Bazı programlar if (in) yazarak da akışın durumunu sorgular; bu da is_open() ile benzer bir kontrol sağlar. Hangisini kullanırsan kullan, açık kontrolü olmadan dosya okuma güvenli değildir.

Uygulama Olmayan dosyayı kontrol et

Başlangıç kodu olmayan.txt dosyasını açmaya çalışır (bu dosya yok). is_open() ile kontrol et: açıksa "Açık", değilse "Kapalı" yazdır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <fstream>

int main() {
    std::ifstream in("olmayan.txt");
    // is_open ile kontrol et ve durum yazdır

    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <fstream>

int main() {
    std::ifstream in("olmayan.txt");
    if (in.is_open()) {
        std::cout << "Açık";
    } else {
        std::cout << "Kapalı";
    }
    return 0;
}

Beklenen çıktı

Kapalı

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 in.is_open() false dönerse ne anlama gelir?

main.cpp
std::ifstream in("yok.txt");
if (in.is_open()) { /* oku */ }
  • Dosya çok büyük
  • Dosya boş
  • Dosya açılamadı Doğru cevap
  • Dosya zaten kapalı

Açıklama: false dosyanın açılamadığını gösterir.

2 is_open çağrısını tamamla

Soru
if (in.____()) { std::cout << "Açık"; }
Cevap
if (in.is_open()) { std::cout << "Açık"; }

Açıklama: is_open() dosya açık mı diye sorgular.

3 Parçayı rolüne eşle

Kavram Anlamı
is_open() Açık mı sorgusu
if (in.is_open()) Güvenli açma
return 1 Hata ile çıkış
!in.is_open() Acilmadı sorgusu

Orta seviye bölümündeki tüm dersler