C++ Dosya İşlemleri

  • 1
  • (1)
  • (5)
  • 18 Oca 2025

C++ programlamada, dosya içeriği işleme işlemleri yapmak için "fstream" kütüphanesi kullanılır. Bu yazı içerisinde hem metin dosyası işlemleri hem de binary dosya işlemleri örnekleri mevcuttur.

C++'ta dosya işlemleri için kullanılan temel sınıflar şunlardır:

  • ofstream (output file stream): Dosyaya yazma işlemleri.
  • ifstream (input file stream): Dosyadan okuma işlemleri.
  • fstream (file stream): Hem okuma hem de yazma işlemleri.

Metin Dosyaları

Metin dosyaları genellikle insan tarafından anlaşılır bir biçimde yazılır ve okunur.

Aşağıdaki örnekte bir metin dosyasına satırlar halinde içerik yazılmaktadır.


#include <iostream>
#include <fstream>
#include <string>
#include <locale.h>
using namespace std;

int main() {
    setlocale(LC_ALL, "Turkish");
    ofstream dosya("metin_dosyasi.txt");
    if (dosya.is_open()) {
        dosya << "Merhaba, bu bir metin dosyasıdır." << endl;
        dosya << "C++ dosya işlemleri örneği." << endl;
        dosya.close();
        cout << "Dosya başarıyla yazıldı." << endl;
    }
    else {
        cout << "Dosya açılamadı!" << endl;
    }
    return 0;
}

Metin dosyası yoksa oluşturulacaktır. Bu metin dosyasından okuma yapmak için de aşağıdaki örnek uygulanabilir.


#include <iostream>
#include <fstream>
#include <string>
#include <locale.h>
using namespace std;

int main() {
    setlocale(LC_ALL, "Turkish");
    ifstream dosya("metin_dosyasi.txt");
    string satir;
    if (dosya.is_open()) {
        while (getline(dosya, satir)) {
            cout << satir << endl;
        }
        dosya.close();
    }
    else {
        cout << "Dosya açılamadı!" << endl;
    }
    return 0;
}

Binary (İkili) Dosyalar

Binary dosyalar, verileri ikili formatta saklar ve genellikle insanlar tarafından anlaşılamaz. Sayılar, yapılar ve diğer veri türleri binary formatta saklanabilir.

Binary dosya yazmak için aşağıdaki örneği uygulayabilirsiniz.


#include <iostream>
#include <fstream>
#include <locale.h>
using namespace std;

struct Ogrenci {
    char isim[50];
    int yas;
    double notOrtalamasi;
};

int main() {
    setlocale(LC_ALL, "Turkish");
    Ogrenci ogr = { "Ahmet", 21, 3.75 };
    ofstream dosya("ogrenci.dat", ios::binary);
    if (dosya.is_open()) {
        dosya.write(reinterpret_cast<char*>(&ogr), sizeof(Ogrenci));
        dosya.close();
        cout << "Binary dosyaya yazıldı." << endl;
    }
    else {
        cout << "Dosya açılamadı!" << endl;
    }
    return 0;
}

Ogrenci yapısı dosyaya binary olarak kaydedilmiştir. Binary ile tam sayı, ondalık sayı, metin, tarih, saat vb türü değişkenlerden oluşan çok daha karmaşık veri türleri dosyalara yazılabilir.

Kaydedilen binary veriyi geri okumak için aşağıdaki kodu uygulayabilirsiniz.


#include <iostream>
#include <fstream>
#include <locale.h>
using namespace std;

struct Ogrenci {
    char isim[50];
    int yas;
    double notOrtalamasi;
};

int main() {
    setlocale(LC_ALL, "Turkish");
    Ogrenci ogr;
    ifstream dosya("ogrenci.dat", ios::binary);
    if (dosya.is_open()) {
        dosya.read(reinterpret_cast<char*>(&ogr), sizeof(Ogrenci));
        dosya.close();
        cout << "İsim: " << ogr.isim << endl;
        cout << "Yaş: " << ogr.yas << endl;
        cout << "Not Ortalaması: " << ogr.notOrtalamasi << endl;
    }
    else {
        cout << "Dosya açılamadı!" << endl;
    }
    return 0;
}

C++'ta dosya işlemleri için fstream kütüphanesi kullanılarak metin ve binary formatında dosya okuma ve yazma işlemleri gerçekleştirilebilir. Verilerin kalıcı olarak saklanması ve işlenmesi için bu teknikler oldukça önemlidir.

Örnekler Visual Studio 2022 ortamında C++ konsol uygulaması üzerinde denenmiştir.

İlişkili İçerikler

Bu makale içerisinde Visual Studio 2022 üzerinde C++ konsol uygulaması oluşturup, üzerinde değişik örnekler denenmektedir. İnceleyip uygulayabilirsiniz.

Paylaşın
Etiket Bulutu