Aracılığıyla paylaş


Giriş akımı üye işlevleri

Giriş akışı üye İşlevler, disk giriş için kullanılır.Üye işlevler şunlardır:

  • Giriş akışları için Aç işlevi

  • Alma işlevi

  • Getline işlevi

  • Read işlevi

  • Seekg ve tellg işlevleri

  • Giriş akışları için Kapat işlevi

Giriş akışları için Aç işlevi

Giriş dosyası akış (ifstream) kullanıyorsanız, bu akış belirli disk dosyası ile ilişkilendirmeniz gerekir.Kurucuda bunu yapabilirsiniz veya kullanabileceğiniz açık işlevi.Her iki durumda da aynı olan bağımsız değişkenlerdir.

Genellikle belirttiğiniz bir ios_base::openmode bayrak, bir giriş akışı ile ilişkilendirilmiş dosyayı açtığınızda (varsayılan moddur ios::in).Bir listesini görmek için open_mode bkz: bayraklar, açık işlevi.Bitsel or ile bayraklar birleştirilebilir (|) işleci.

Bir dosyayı okumak için öncelikle kullanmak başarısız üye işlevi var olup olmadığını belirlemek için:

istream ifile( "FILENAME" );
if ( ifile.fail() )
// The file does not exist ...

Alma işlevi

Biçimlendirilmemiş Al üye işlevi çalışır gibi >> işleci iki istisnalar.Önce Al işlevi extractor boşluk bırakır ama beyaz boşluk karakterleri içerir, skipws bayrağını ayarlayın (varsayılan).İkinci, Al işlevi bağlı çıktı akışına neden olabilir (cout, örneğin) boşaltılması için.

Sütlü çikolata Al işlevi bir arabellek adresi ve en fazla okumak için karakter sayısını belirtir.Bu örnekte gösterildiği gibi belirli bir değişken gönderilen karakter sayısını sınırlamak için kullanışlıdır:

// ioo_get_function.cpp
// compile with: /EHsc
// Type up to 24 characters and a terminating character. 
// Any remaining characters can be extracted later.
#include <iostream>
using namespace std;

int main()
{
   char line[25];
   cout << " Type a line terminated by carriage return\n>";
   cin.get( line, 25 );
   cout << line << endl;
}

f5tsy854.collapse_all(tr-tr,VS.110).gifGirdi

1234

f5tsy854.collapse_all(tr-tr,VS.110).gifÖrnek Çıktı

1234

Getline işlevi

Getline üye işlev için benzer Al işlevi.Her iki işlevi Sonlandırıcı karakter girişi belirtir üçüncü bağımsız değişken izin verir.Yeni satır karakteri varsayılan değerdir.Her iki işlevi için gerekli Sonlandırıcı karakter bir karakter rezerve edin.Ancak, Al Sonlandırıcı karakter akışında bırakır ve getline Sonlandırıcı karakter kaldırır.

Aşağıdaki örnek bir sonlandırıcı karakter giriş akışı için belirtir:

// getline_func.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

int main( )
{
   char line[100];
   cout << " Type a line terminated by 't'" << endl;
   cin.getline( line, 100, 't' );
   cout << line;
}

f5tsy854.collapse_all(tr-tr,VS.110).gifGirdi

test

Read işlevi

Okuma üye işlevi belirtilen bir bellek alanı için bir dosyadan bayt okur.Uzunluk değişkeni okunan bayt sayısını belirler.Bu bağımsız değişkenini içermeyen, fiziksel dosya sonuna ulaşıldığında ya da, bir katıştırılmış metin modu dosyası örneğinde okuma durur EOF karakter okuma.

Bu örnek bir ikili kayıt yapısı içinde bir bordro dosyadan okur:

#include <fstream>
#include <iostream>
using namespace std;

int main()
{
   struct
   {
      double salary;
      char name[23];
   } employee;

   ifstream is( "payroll" );
   if( is ) {  // ios::operator void*()
      is.read( (char *) &employee, sizeof( employee ) );
      cout << employee.name << ' ' << employee.salary << endl;
   }
   else {
      cout << "ERROR: Cannot open file 'payroll'." << endl;
   }
}

Program, veri kayıtlarını biçimlendirilip biçimlendirilmediğini aynen belirtildiği gibi hiçbir Sonlandırıcı başı veya satır besleme karakterleri yapısıyla varsayar.

Seekg ve tellg işlevleri

Giriş dosyası akışları veri daha sonra okunmasını nerede dosya konumuna dahili bir işaretçiyi tutun.Bu işaretçi ile ayarlamak seekg , aşağıda gösterildiği gibi işlev:

#include <iostream>
#include <fstream>
using namespace std;

int main( )
{
   char ch;

   ifstream tfile( "payroll" );
   if( tfile ) {
      tfile.seekg( 8 );        // Seek 8 bytes in (past salary)
      while ( tfile.good() ) { // EOF or failure stops the reading
         tfile.get( ch );
         if( !ch ) break;      // quit on null
         cout << ch;
      }
   }
   else {
      cout << "ERROR: Cannot open file 'payroll'." << endl;
   }
}

Kullanmak için seekg kaydı yönelimli veri yönetim sistemleri uygulamak için sabit uzunlukta kayıt boyutu bayt konumuna dosyanın sonuna göre elde edilir ve daha sonra kullanmak için kayıt numarasına göre çarpma Al nesne kaydı okunamıyor.

tellg Üye işlevi okumak için geçerli dosya konumunu döndürür.Bu değer türüdür streampos, bir typedef <iostream> içinde tanımlanan.Aşağıdaki örnek, bir dosyayı okur ve boşluk konumlarını gösteren bir ileti görüntüler.

#include <fstream>
#include <iostream>
using namespace std;

int main( )
{
   char ch;
   ifstream tfile( "payroll" );
   if( tfile ) {
       while ( tfile.good( ) ) {
          streampos here = tfile.tellg();
          tfile.get( ch );
          if ( ch == ' ' )
             cout << "\nPosition " << here << " is a space";
       }
   }
   else {
      cout << "ERROR: Cannot open file 'payroll'." << endl;
   }
}

Giriş akışları için Kapat işlevi

Kapatmak üye işlev girdi dosyası akışı ile ilişkili disk dosyayı kapatır ve işletim sistemi dosya tanıtıcısını serbest bırakır.İfstream 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.

Ayrıca bkz.

Başvuru

Giriş akışları