Ev Kişisel Finans Ios Bayrakları'nı C ++ 'da bayrak altına alıyor ya da bir dosya akışı veya ifstream örneği oluşturarak bir dosyayı açtığınızda, C ++' da ios Bayrakları'nı bayrakları - cümlecik <[SET:descriptiontr]Olarak işaretleyerek

Ios Bayrakları'nı C ++ 'da bayrak altına alıyor ya da bir dosya akışı veya ifstream örneği oluşturarak bir dosyayı açtığınızda, C ++' da ios Bayrakları'nı bayrakları - cümlecik <[SET:descriptiontr]Olarak işaretleyerek

Video: Week 0, continued 2024

Video: Week 0, continued 2024
Anonim

Bir dosya ya da bir dosya örneği oluşturarak bir dosyayı açtığınızda, bayraklar olarak adlandırılanları sağlayarak dosyanın açılma şeklini değiştirebilirsiniz. Bilgisayar terimlerinde bayrağı basitçe varlığı veya varlığı olmaması, bir işleve nasıl bir şeyler yapacağını söyleyen küçük bir üründür. Ofstream ve ifstream sınıfları ile, söz konusu fonksiyon kurucudur.

Tamamen ANSI uyumlu olmayan bir derleyici kullanıyorsanız veya tamamen ANSI uyumlu bir bayt kullanıyorsanız ios_base:: apl gibi görünen bayrak, ios:: app gibi görünür. Bu belirli bayrak, bir dosyaya yazmak istediğiniz anlamına gelir, ancak bir dosyada olabilecek mevcut verilere eklemek istersiniz. Bu bayrak, aşağıdaki örneklerden birinde olduğu gibi ofstream için yapıcının bir bağımsız değişkeni olarak sağlanır:

ofout çıktı dosyası ("AppendableFile. Txt", ios:: app); ofstream çıktı dosyası ("AppendableFile. txt", ios_base:: app);

Bayrağın yapıcıya ikinci bir parametre olarak eklendiğini görebilirsiniz. Uygulamanın yanı sıra diğer bayraklar da var ve bunları or operatörü, | kullanarak tarayabilirsiniz. Örneğin, bir bayrak ios:: nocreate (yeni derleyicilere dahil değildir).

Bu, "zaten mevcutsa dosyayı aç" anlamına gelir. "Yani, eğer mevcut değilse dosyayı yaratma. (Unutma, ofstream zaten yoksa bir dosya oluşturur.) Dosya mevcut değilse, açık başarısız olur ve başarısız olarak çağırdığınızda gerçek bir 'ı geri alırsınız.

ios:: nocreate bayrağı, ios:: app ile kullanışlıdır. Bu, birlikte, varolan bir dosyayı açar ve ona ekler. Yani, ikisi birlikte yalnızca, dosya zaten mevcutsa çalışacak ve çağrı, dosyayı bir ekleme işlemi için açacaktır. Dosya zaten yoksa, dosya oluşturulmaz. Örnek bir arama:

ofstream çıktısı ("… / MyFile. Txt", ios:: app | ios:: nocreate); if (outfile. fail ()) {cout << "dosyası açılamadı!" << endl; return 0;} çıktı dosyası << "merhaba" << endl; ÇıkışDosyası. kapat();

If MyFile. Bu kodu çalıştırdığınızda txt mevcut değil, iletiyi alırsınız dosyayı açılamadı! Ama eğer MyFile. txt mevcutsa, uygulama açar, Hi dize ekler ve sonunda kapatır.

Yeni Standart Kütüphane'de nocreate bayrağı mevcut değildir. Aylak. Bu nedenle kod, yalnızca kitaplığın önceki bir sürümünü kullanıyorsanız çalışır. Code:: Blocks derleyici kullanırken, aşağıdaki hata iletisini görürsünüz:

hatası: 'nocreate' üyesi değil '; std:: ios '

Ancak, belirli derleyicinizin ios:: nocreate özelliğini destekleyen bir kitaplık içerdiğini test etmek isteyeceksiniz.Yeni Standart Kitaplığı içerse bile derleyiciniz zaten bunu destekleyebilir. Ios:: nocreate'e bir alternatif olarak, aşağıdaki kodu (FileOutput02 örneğinde bulunur) kullanabilirsiniz:

ifstream infile ("… / MyFile. Txt"); if (infile. fail ()) {cout << "dosyası açılamadı!" << endl; geri dönüş 0. kapat(); ofstream outfile ("… / MyFile. txt", ios:: app); outfile << "merhaba" << endl; ÇıkışDosyası. kapat();

Bu durumda, dosyayı okumak için açmaya çalışmaya başlarsınız. Dosya yoksa, dosyayı okuyamazsınız ve kod bir hata mesajıyla çıkar. Kod dosyadan okunabiliyorsa, dosyanın yazılması için yeniden açılır. Bu, hantal bir geçici çözüm, ancak çalışıyor.

Aşağıda, mevcut bayrakları listelemektedir. Tamamıyla ANSI uyumlu olmayan bir derleyici kullanıyor iseniz, ilk olarak ios için olanlar şunlardır:

  • ios:: app: Bu bayrak, bir dosyayı açmak ve ona dosya eklemek istediğiniz anlamına gelir.

  • ios:: in: Bir dosyadan okumak isterseniz bu bayrağı ekleyin.

  • ios:: out : Bir dosyaya yazmak istiyorsanız bu bayrağı ekleyin.

  • ios:: trunc : Dosyaya yazmadan önce dosyanın içeriğini temizlemek istiyorsanız bu bayrağı ekleyin. Eklemenin tam tersi ve ayrıca ios:: app'u kesinlikle içermiyorsanız varsayılan seçenek.

  • ios:: nocreate : Dosyanın mevcut olmaması durumunda dosyanın açılmamasını sağlamak için bu bayrağı kullanın, böylece dosyanın açılmasına neden olmazsınız.

  • ios:: noreplace : Bu bayrak nocreate'in tam tersi. Yalnızca yeni bir dosya oluşturmak istiyorsanız bu bayrağı kullanın. Bu bayrağı kullanırsanız ve dosya zaten varsa, dosya açılmaz ve bu hata "true" değerini döndürür.

ANSI uyumlu derleyiciler ios:: noreplace bayrağını da desteklemezler. Bu durumda, burada gösterildiği gibi (ve FileOutput03 örneğinde bulunan) ios: nocreate bayrağı için düzeltmenin tersini kullanabilirsiniz:

ifstream infile ("… / MyFile. Txt"); if (! infile. fail ()) {cout << "dosya zaten var!" << endl; geri dönüş 0. kapat(); ofstream çıktı dosyası ("… / MyFile. txt"); outfile << "merhaba" << endl; ÇıkışDosyası. kapat();

Bu durumda, kod dosyayı okumak için açmaya çalışır. Dosya varsa, kod bir hata iletisi gösterir ve çıkar. Aksi takdirde kod yeni bir dosya oluşturur ve ona yazar.

Aşağıdaki bayraklar kesinlikle ANSI uyumlu bir kompliyörde mevcuttur!

  • ios:: ate: Dosyayı açtıktan sonra dosyanın sonuna gitmek için bu bayrağı kullanın. Normalde, dosyaya veri eklemek istediğinizde bu bayrağı kullanın.

  • ios_base:: binary: Açtığınız dosyanın ikili verileri, yani karakter dizilerini temsil etmeyen verileri tutacağını belirtmek için bu bayrağı kullanın.

  • ios_base:: in: Bir dosyadan okumak istediğinizde bu bayrağı belirtin.

  • ios_base:: out: Bir dosyaya yazmak istediğinizde bu bayrağı ekleyin.

  • ios_base:: trunc: Bir dosyanın içeriğini yazmadan önce silip silmek istiyorsanız bu bayrağı ekleyin.

  • ios_base:: app: Dosyaya eklemek istiyorsanız bu bayrağı ekleyin. Trunc'ün tam tersi - yani, dosyayı açtığınızda dosyada zaten bulunan bilgiler orada kalacak.

Neden bir bayrak ve bayrak bayrağı istiyorsun? Bilgisayar, bir dosyaya yazıp yazmadığınızdan veya dosyanızdan okumakta olup olmadığınızı bilmelidir (sırasıyla) veya kullanıp kullanmama üzerine bağlıdır. Bir bayrak ve bayrak bayrak sahibi olduğunuza yönelik cevap, ofstream ve ifstream'in yanında başka sınıfların da bulunabilmesidir.

ANSI standardını henüz tam olarak desteklemeyen derleyiciler kütüphanelerinde fstream adlı genel bir sınıfa sahiptirler. ANSI uyumlu derleyiciler kütüphanelerinde basic_filebuf adında bir şablon sınıfı ve filebuf adı verilen bir sınıfı vardır. Bu sınıfları kullanırsanız, giriş ve çıkış bayrakları kullanabilirsiniz.

Ios Bayrakları'nı C ++ 'da bayrak altına alıyor ya da bir dosya akışı veya ifstream örneği oluşturarak bir dosyayı açtığınızda, C ++' da ios Bayrakları'nı bayrakları - cümlecik <[SET:descriptiontr]Olarak işaretleyerek

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 ...