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