Ev Kişisel Finans Bir Dosyayı Açtığınızda C ++ Hatalarını Ele Almak İçin - Bir dosya açtığınızda canavar

Bir Dosyayı Açtığınızda C ++ Hatalarını Ele Almak İçin - Bir dosya açtığınızda canavar

Video: Learn Python - Full Course for Beginners [Tutorial] 2024

Video: Learn Python - Full Course for Beginners [Tutorial] 2024
Anonim

Bir dosyayı açtığınızda, her şey ters gidebilir. Bir dosya fiziksel bir aygıtta yaşıyor - sabit bir disk, örneğin flash sürücü veya SD kartı - ve fiziksel aygıtlarla çalışırken sorun yaşayabilirsiniz.

Örneğin, diskin bir kısmı hasar görebilir ve mevcut bir dosyanın bozulmasına neden olabilir. Ya da, felaketten daha az, disk alanınız tükenebilir. Veya, daha felaket olsa bile, mevcut olmayan bir dizinde bir dosya açmaya çalışabilirsiniz.

Eğer bir dosyayı bir tam yol ve dosya adı belirterek açmaya çalışırsanız fakat dizin yoksa, bilgisayar kullandığınız işletim sistemine bağlı olarak farklı tepki verir. Belirli işletim sisteminizin nasıl yanıt vereceğinden emin değilseniz, / abc / def / ghi / jkl / abc gibi bir şey oluşturup açmaya çalışan basit bir test uygulaması yazmayı deneyin. Txt. (Tabii ki, bulunmayan bir dizini kullandığınızdan emin olmak istersiniz.)

Sonra iki şeyden biri gerçekleşir: Ya dizin ve dosya oluşturulur ya da hiçbir şey olmaz.

Örneğin, bir Windows sisteminde, mevcut olmayan bir dizinde bir dosya oluşturmaya çalışırsak, sistem dizini oluşturmaz. Bunun nedeni, derinlemesine içeride, uygulama sonunda dosyayı oluşturmanın kirli işi yapan bir işletim sistemi işlevi çağırıyor. Ve bu özel işletim sistemi işlevi (buna bile bakarsanız CreateFile () denir) sizin için bir dizin oluşturmayacağına dair bir kurala sahiptir.

ostream sınıfının bir dosya oluşturamadığını belirlemek istiyorsanız, fail () üye işlevini çağırabilirsiniz. Nesne dosyası oluşturamazsa, bu işlev true değerini döndürür. Ve bir dizin yok olduğunda ne olur. Gösterilen DirectoryCheck01 örneği bunun bir örneğini göstermektedir.

#include #include ad alanı std kullanarak; int main () {outstream dosyası ("/ abc / def / ghi / MyFile. txt"); if (outfile. fail ()) {cout << "dosyası açılamadı!" << endl; return 0;} çıktı dosyası << "merhaba" << endl; ÇıkışDosyası. kapat(); return 0;}

Bu kodu çalıştırdığınızda, sisteminizde / abc / def / ghi adlı bir dizin bulunmadığını varsayarsak, iletiyi açamadı iletisini görmelisiniz! Belirli işletim sisteminizin bu durumda bir dizin oluşturmadığını varsayarsak; Eğer varsa, bilgisayarınız dosyayı açar, ona yazarsınız ve işleri kapattıktan sonra mutlu bir hayat sürdürecektir.

Fail () üye işlevinin çağrılmasına alternatif olarak, çeşitli akış sınıflarında bulunan bir operatör kullanabilirsiniz. Bu!, sevimli bir şekilde "patlama" operatörü olarak anılır ve bunu, bu kodda olduğu gibi, fail () işlevini çağırmak yerine kullanabilirsiniz:

if (!outfile) {cout << "dosyası açılamadı!" << endl; return 0;}

Çoğu kişi kullanmayı tercih eder! outfile yerine outfile. başarısız ol (), olsa da! outfile kafa karıştırıcı kodu yapar. Nedeni outfile bir nesne ve kavramıdır! Dışkı sadece anlam ifade etmiyor.

Aslında! outfile birçok başlangıçtaki programcıya gider. Outfile'in bu örnek kodda bir gösterici olmadığını biliyorlar ve normalde yalnızca bir işaretçi ile yapabileceği şekilde 0'a karşı nasıl test edebileceğinizi merak ediyorlar. (Hatırlayın! X, burada x işaretçidir, x değerini 0 olarak test edersiniz.) Ve bu mantıklı değil! Ve böylece, karışıklığı önlemek için, sadece fail () 'i çağırın. Daha mantıklı.

Dosyanızın yaratılmasının bazı nedenleri olabilir:

  • Dizin yok.

  • Disk alanınız tükendi ve şansınız yok.

  • Uygulamanızda bir dosya oluşturmak için doğru izinlere sahip değilsiniz.

  • Dosya adı geçersiz - başka bir deyişle, işletim sisteminin dosya adı olarak * veya? Gibi izin vermediği karakterler içeriyor..

Başarılı bir uygulama gibi, uygulamanız da iki şey yapmalıdır:

  1. 1. Dosya oluşturma işleminin başarılı olup olmadığını kontrol edin.

  2. 2. Dosya oluşturma başarısız olursa, uygun şekilde işleme koyun.

    Afedersiniz gibi korkunç bir mesaj yazmayın! Durduruluyor!, zavallı kullanıcılarınıza monitörü yere yatırmaktan başka seçeneği dokunmadan bırakıyorsunuz. Bunun yerine, dostça bir şeyler yapın - onlara bir sorun olduğunu bildiren bir mesaj sunmak ve daha fazla disk alanı boşaltmalarını önermek gibi.

Bir Dosyayı Açtığınızda C ++ Hatalarını Ele Almak İçin - Bir dosya açtığınızda canavar

Editörün Seçimi

Kendi Excel 2007 Şablonlarınızı Oluşturun - mankenler

Kendi Excel 2007 Şablonlarınızı Oluşturun - mankenler

Hazır bir Excel 2007 şablonunu bulamazsanız faturaya uyuyor, oluşturduğunuz veya şirketinizin elinde bulunan örnek çalışma kitaplarından kendi şablonlarınızı oluşturuyor. Kendi şablonunuzu oluşturmanın en kolay yolu, gerçek bir çalışma kitabı prototipi oluşturmak ve dosyayı şablon dosyası biçimini kullanarak kaydedin ...

Kendi Excel 2010 Şablonlarınızı Oluşturma - mankenler

Kendi Excel 2010 Şablonlarınızı Oluşturma - mankenler

Hazır Excel 2010 şablonunu bulamazsanız faturaya uyuyor, oluşturduğunuz veya şirketinizin elinde bulunan örnek çalışma kitaplarından kendi şablonlarınızı oluşturuyor. Kendi şablonunuzu oluşturmanın en kolay yolu, gerçek bir çalışma kitabı prototipi oluşturmak ve dosyayı şablon dosyası biçimini kullanarak kaydedin ...

Excel 2007 Grafiğinin Tipini ve Stilini özelleştiren - aumluları

Excel 2007 Grafiğinin Tipini ve Stilini özelleştiren - aumluları

Bir grafik eklediğinizde bir Excel 2007 çalışma kitabı, Şeritte yeni bir Grafik Araçları Tasarım sekmesi görüntülenir. Grafik türünü ve stilini özelleştirmek için Grafik Araçları Tasarım sekmesindeki komut düğmelerini kullanabilirsiniz. Tasarım sekmesi aşağıdaki düğme gruplarını içerir: Tür grubu Değiştir Grafik Türü ...

Editörün Seçimi

ÜÇüncü Temel, Çalınma Evini ve Diğer Beyzbol Beyitlerini Çalın

ÜÇüncü Temel, Çalınma Evini ve Diğer Beyzbol Beyitlerini Çalın

ÜÇüncü temel çalmak genellikle ikinci çalmaktan daha kolaydır. Birçok atış çizmeden ilk önce olduğundan daha büyük bir yol alabilirsin. Zamanlamanız iyi ise, atıcı topu bırakmadan önce saniyelerden de çıkabilirsiniz. Sürahi genellikle koşucuları ikinci sıradan seçmek daha zor olur ...

Basketbol Takımınızda Bir Balo Domuzuyla

Basketbol Takımınızda Bir Balo Domuzuyla

Balo domuzu - asılı bir oyuncu uzun süreler boyunca topa vurur ve geçmek yerine her yere ateş etmeyi amaçlar - tüm takım için gerçek sorunlar yaratır. Örneğin, topu domuzu, takımın moralini zayıflatan ve öldüren puan almaya çalışan açık takım arkadaşlarını görmezden gelir ...

Editörün Seçimi

Canon EOS 6D'ye Yazar Adı Nasıl Eklenir Canon EOS 6D'ye Yazar Adı Nasıl Eklenir

Canon EOS 6D'ye Yazar Adı Nasıl Eklenir Canon EOS 6D'ye Yazar Adı Nasıl Eklenir

Adınızı aşağıdaki gibi ekleyebilirsiniz: Canon'la çektiğiniz her görüntünün yazarı. Bilgiler, çektiğiniz her resme EXIF ​​verisi olarak eklenir. Yazar bilgilerinizi kameraya kaydetmek için: Menü düğmesine basın. Daha önce kullanılan menü görüntülenir. Kamera Ayarları ... 4 ...

Rebel T6i / 750D'den Görüntülere Nasıl Temizleme Talimatları Ekleyeceksiniz - mankenler

Rebel T6i / 750D'den Görüntülere Nasıl Temizleme Talimatları Ekleyeceksiniz - mankenler

Küçük noktalar görüntülerinizde tutarlı bir şekilde görünüyorsa ve Rebel T6i / 750D'nin lensindeki kirin nedeni değilse - sensörünüzün temizlemeye ihtiyacı olabilir. Sensörü kendiniz temizlemeyin, çünkü ne yaptığınızı bilmiyorsanız makinenizi kolayca mahvedebilirsiniz. Bunun yerine, fotoğraf makinesini çekin ...