Aracılığıyla paylaş


Çıkış dosya akışı üye işlevleri

Çıkış akışı üye işlevleri olan üç tip: manipulators için biçimlendirilmemiş gerçekleştiren olanlar eşdeğer olanları yazma işlemleri ve aksi akışını değiştiren bu durum ve eşdeğer manipulator ya da ekleme işlecini sahip.Sıralı, biçimlendirilmiş çıktı için yalnızca ekleme operatörler ve manipulators kullanabilir.Rasgele erişimli ikili disk çıktı için veya ekleme işleçleri olmadan diğer üye işlevlerini kullanın.

Çıkış akımları için Aç işlevi

Çıkış dosya akışı kullanmak için (ofstream), o akış Oluşturucu belirli bir disk dosyasında ile ilişkilendirmeniz gerekir veya açık işlevi.Kullanırsanız, açık işlevi, aynı stream nesnesi ile bir dizi dosyayı yeniden kullanabilirsiniz.Her iki durumda da, dosyayı tanımlayan aynı olan bağımsız değişkenlerdir.

Çıkış akışı ile ilişkili dosya açtığınızda, genellikle belirtir bir open_mode bayrağı.İçinde sıralayıcısını olarak tanımlanan bu bayraklar birleştirebilirsiniz ios sınıfı, bit seviyesinde veya (|) işleci.Bkz: ios_base::openmode numaralandırıcıları listesi.

Üç yaygın çıkış akışı durum modu seçenekleri içerir:

  • Bir dosyası oluşturuluyor.Dosya zaten varsa, eski sürüm silinir.

    ostream ofile( "FILENAME" );  // Default is ios::out
    ofstream ofile( "FILENAME", ios::out ); // Equivalent to above
    
  • Yoksa, bir oluşturma veya varolan bir dosyaya kayıtları ekleme.

    ofstream ofile( "FILENAME", ios::app );
    
  • İki dosyaları bir defada aynı akımı açılıyor.

    ofstream ofile();
    ofile.open( "FILE1", ios::in );
    // Do some output
    ofile.close(); // FILE1 closed
    ofile.open( "FILE2", ios::in );
    // Do some more output
    ofile.close(); // FILE2 closed
    // When ofile goes out of scope it is destroyed.
    

Put işlevi

Put işlevi çıktı akımına bir karakter yazar.Aşağıdaki iki ifadeyi varsayılan olarak aynıdır, ancak ikinci akışın biçimi bağımsız etkilenir:

cout.put( 'A' ); // Exactly one character written
cout << 'A'; // Format arguments 'width' and 'fill' apply 

İşlev yazma

Yaz işlevi bir çıktı dosyası akışına bir bellek bloğu yazar.Uzunluk değişkeni yazılan bayt sayısını belirtir.Bu örnek, çıktı dosya akışı oluşturur ve ikili değerini Yazar Date ona yapısı:

// write_function.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;

struct Date
{
   int mo, da, yr;
};

int main( )
{
   Date dt = { 6, 10, 92 };
   ofstream tfile( "date.dat" , ios::binary );
   tfile.write( (char *) &dt, sizeof dt );
}

Yaz işlevi değil durdurmak tam sınıf yapısı yazıldığı şekilde bir null karakteri ulaştığında.İşlevi iki baðýmsýz deðiþken alýr: bir char işaretçisi ve yazmak için karakter sayısı.Not gerekli cast char * yapısı nesnesinin adresinden önce.

Seekp ve tellp işlevleri

Çıkış dosyası akışı veri sonraki yazılı olduğu yere işaret eden dahili bir işaretçi tutar.seekp Üye işlevi bu işaretçisini ayarlar ve böylece rasgele erişim disk dosya çıktı sağlar.tellp Üye işlevi dosya konumunu döndürür.Giriş akışı eşdeğerlerine kullanın örnekler için seekp ve tellp, bkz: seekg ve tellg işlevleri.

Çıkış akımları için Kapat işlevi

Kapatmak üye işlevi çıktı dosya akışı ile ilişkili disk dosyası kapatır.Tüm disk çıktı tamamlamak için dosyanın kapatılması gerekir.Gerekirse, ofstream yıkıcı sizin için dosyayı kapatır, ancak kullanabileceğiniz kapatmak aynı stream nesnesi için başka bir dosya açmak gerekiyorsa, işlev.

Çıkış akışı yıkıcı bir akışın dosya eksikse kurucusu otomatik olarak kapatır. veya açık üye işlevi dosya açılır.Zaten açık dosya veya kullanmak için dosya tanımlayıcısı Oluşturucusu başarılı olursa ekleme üye işlev açıkça dosyayı kapatmalısınız.

Hata işleme işlevleri

Bu üye işlevler bir akışı yazılırken hata sınamasını kullanın:

İşlev

Dönüş değeri

hatalı

Döndürür doğru kurtarılamaz bir hata varsa.

başarısız

Döndürür doğru kurtarılamaz bir hata veya bir dönüşüm hatası gibi "beklenen" bir durum varsa veya dosya bulunamadı.İşlem genellikle sürdürme çağrısı yapıldıktan sonra temizleyin bir sıfır bağımsız değişkeni.

iyi

Döndürür doğru (kurtarılamaz veya başka türlü) hiçbir hata koşulu vardır ve dosya sonu bayrağı ayarlı değil.

EOF

Döndürür doğru dosyasının son durumu hakkında.

temizleyin

İç hata durumunu ayarlar.Varsayılan bağımsız değişkenleri ile adlı, bütün hata bitlerini temizler.

rdstate

Hata durumu döndürür.

The ! ile aynı işlevi gerçekleştirmek için işleç aşırı başarısız işlevi.Bu nedenle ifadesi:

if( !cout)...

eşdeğerdir:

if( cout.fail() )...

Void*() tersini olmasını işleç aşırı ! işleç; Bu nedenle ifadesi:

if( cout)...

eşittir:

if( !cout.fail() )...

Void*() işleç eşdeğer değil iyi çünkü dosya sonu için sınamaz.

Ayrıca bkz.

Başvuru

Çıkış akımları