ofstream(output file stream): Sadece dosya oluşturma ve üzerine yazma işlemlerinde kullanılır.
ifstream(input file stream): Dosya okuma işlemlerinde kullanılır.
fstream(file stream): Dosya okuma, yazma ve oluşturma işlemleri için kullanılır.
Dosya Oluşturma
Dosya oluşturmak için ofstream veya fstream tanımlı dosya değişkeni tanımlanır. Dosya değişkeni tanımlandıktan sonra fstream kütüphanesine ait open metodu ile dosya açma işlemi aşağıdaki gibi gerçekleştirilir.#include <iostream>
#include <fstream>
using namespace std;
int main(){
fstream file;
file.open("dosya.txt");
file.close();
return 0;
}
open metodunda birinci parametre olarak dosya ismi uzantısı ile verildi. Bu metot içerisinde ikici parametre olarak bayrakları kullanabiliriz. Bayraklar (mod flags) dosyanın program içerisinde nasıl çalışacağına dair özellikler vermemizi sağlar. Örneğin dosyanın program içerisinde sadece okunabilir olmasını sağlayabiliriz. Bu da dosyaya yazma işlemi yapamayız demektir.Bayraklar (mod flags) | |
---|---|
ios::in | Açılan dosya üzerinde okuma izni. |
ios::out | Açılan dosya üzerinde yazma izni. |
ios::binary | Dosyayı binary modda açma. |
ios::ate | Başlangıç sonu ayarlama. |
ios::app | Dosya içeriği sondan eklemeli olur. Yeni eklenen içerik, mevcut içeriğin sonuna eklenir. |
ios::trunc | Eğer aynı isimde bir dosya mevcutsa, o dosya içeriği silinir. |
ofstream | ios::out
ifstream | ios::in
fstream | ios::out - ios::in
#include <iostream>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
string veri;
fstream file;
int i = 0;
file.open("dosya.txt", ios::out|ios::app);
if(file.is_open()){
while(i<5){
file << "super";
i++;
}
}
file.close();
return 0;
}
Yukarıdaki örnekte dosyaya yazma işlemi gerçekleştirildi. Birden fazla bayrak bildiriminde bulunurken OR(|) işareti ile ayrılarak kullanılır. ios::app bayrağını kullandığımız için programı iki kere çalıştırırsak, dosya.txt içerisinde on tane "super" kelimesi yazdığı görülecektir.is_open() fonksiyonu, üzerinde işlem yapılacak dosyanın açık olup olmadığını kontrol eder.
Dosya içeriğini okumak içinse aşağıdaki örnek incelenmelidir:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
string veri;
fstream file;
file.open("dosya.txt", ios::in);
if(file.is_open()){
while(!file.eof()){
file >> veri;
cout << veri;
}
}
file.close();
return 0;
}
Programda işlem yaptığımız her dosyayı, işimiz bittiğinde close() fonksiyonu ile kapatmalıyız.eof() fonksiyonu, eğer döngü dosya içeriğinin son satırına ulaştıysa true boolean değerini döndürür. Açılımı end of file.
Hiç yorum yok:
Yorum Gönderme