C ++ freopen () - C ++ Standart Kitaplığı

C ++ 'daki freopen () işlevi, başka bir açık dosyayla ilişkilendirilmiş bir dosya akışıyla yeni bir dosya açmaya çalışır.

Freopen () işlevi başlık dosyasında tanımlanmıştır.

freopen () prototipi

 FILE * freopen (const char * dosya adı, sabit karakter * modu, FILE * akışı);

Freopen işlevi önce stream kullanılarak açılan dosyayı kapatmaya çalışır. Dosya kapatıldıktan sonra, bağımsız değişken kipiyle belirtilen kipte bağımsız değişken dosya adı (boş değilse) tarafından belirtilen dosya adını açmaya çalışır. Son olarak, dosyayı dosya akışı akışıyla ilişkilendirir.

Dosya adı bir boş göstericiyse, freopen () işlevi akışla zaten ilişkilendirilmiş olan dosyayı yeniden açmaya çalışır.

freopen () Parametreler

  • dosyaadı: Açılacak yeni dosya.
  • mod: Dosyayı birlikte açma modu. Farklı dosya erişim modu türleri aşağıdaki gibidir:
Farklı dosya çalıştırma modları
Dosya Erişim Modu Yorumlama Dosya varsa Dosya yoksa
"r" Dosyayı okuma modunda açar Baştan okuyun Hata
"w" Dosyayı yazma modunda açar Tüm içeriği sil Yeni dosya oluştur
"a" Dosyayı ekleme modunda açar Yazmaya sondan başla Yeni dosya oluştur
"r +" Dosyayı okuma ve yazma modunda açar Baştan okuyun Hata
"w +" Dosyayı okuma ve yazma modunda açar Tüm içeriği sil Yeni dosya oluştur
"a +" Dosyayı okuma ve yazma modunda açar Yazmaya sondan başla Yeni dosya oluştur
  • stream: Dosya adının ilişkilendirileceği dosya akışı.

freopen () Dönüş değeri

Freopen () işlevi şunu döndürür:

  • başarı akışı.
  • Başarısızlık durumunda NULL.

Örnek: freopen () işlevi nasıl çalışır?

 #include #include int main() ( FILE* fp = fopen("test1.txt","w"); fprintf(fp,"%s","This is written to test1.txt"); if (freopen("test2.txt","w",fp)) fprintf(fp,"%s","This is written to test2.txt"); else ( printf("freopen failed"); exit(1); ) fclose(fp); return 0; )

Programı çalıştırdığınızda:

 Aşağıdakiler test1.txt dosyasına yazılacaktır: Bu, test1.txt dosyasına yazılacaktır . Aşağıdaki test2.txt dosyasına yazılacaktır: Bu, test2.txt dosyasına yazılacaktır.

Ilginç makaleler...