C++

C++'da Dosya Nasıl Okunur ve Yazılır

C++'da Dosya Nasıl Okunur ve Yazılır

Bu yazımızda size C++ programlama dilinde bir dosyanın nasıl okunacağını ve yazılacağını birkaç örnek kullanarak göstereceğiz. Okuma ve yazma gibi C++ dosya işlemlerini anlamak için önce C'deki akış kavramını anlamamız gerekir++.

Akış nedir?

Akış, basitçe bir veri veya karakter akışıdır. İki tür akış vardır: giriş akışları ve çıkış akışları. Klavye gibi harici bir giriş cihazından veri okumak için bir giriş akışı kullanılırken, monitör gibi harici çıkış cihazına veri yazmak için bir çıkış akışı kullanılır. Bir dosya hem girdi hem de çıktı kaynağı olarak kabul edilebilir.

C++'da, harici bir kaynağa veri göndermek veya almak için bir akış kullanırız.

Bir giriş/çıkış akışına erişmek için yerleşik sınıfları kullanabiliriz.e., "ios".

İşte C++ programlama dilinin akış sınıfı hiyerarşisi:

“cin” ve “cout” nesneleri sırasıyla klavyeden veri okumak ve çıktıyı monitörde görüntülemek için kullanılır. Ek olarak, "giriş dosyası akışı" anlamına gelen "ifstream", bir dosyadan bir veri akışını okumak için kullanılır ve "çıkış dosyası akışı" anlamına gelen "ofstream", bir veri akışı yazmak için kullanılır. bir dosyaya.

iostram.h” dosyası, C++ programlama dilinde gerekli tüm standart giriş/çıkış akış sınıflarını içerir.

Örnekler

Artık akışların temellerini anladığınıza göre, C++'da dosya işlemlerini daha iyi anlamanıza yardımcı olmak için aşağıdaki örnekleri tartışacağız:

Örnek 1: Bir Dosyayı Açın ve Kapatın

Bu örnek programda, bir dosyanın nasıl açılacağını/oluşturulacağını ve dosyanın C'de nasıl kapatılacağını göstereceğiz++. Aşağıdaki programda da göreceğiniz gibi dosya işlemleri için gerekli olan kütüphaneyi ekledik.

Bir dosyayı açmak ve kapatmak için bir ofstream nesnesine ihtiyacımız var. Ardından, bir dosyayı okumak veya yazmak için dosyayı açmamız gerekir. ofstream sınıfına erişebilmemiz için fstream başlık dosyasını satır numarası-1'e ekledik.

Ana işlevin içinde bir akış nesnesi olarak bir myFile_Handler tanımladık. Daha sonra boş bir dosya oluşturmak için open() işlevini ve dosyayı kapatmak için close() işlevini kullanabiliriz.

#Dahil etmek
ad alanı std kullanarak;
int ana()

akışı myFile_Handler;
// Dosya Aç
myFile_Handler.open("Dosya_1.Txt");
// Dosya Kapat
myFile_Handler.kapat();
0 döndür;

Şimdi programı derleyeceğiz ve çıktısını inceleyeceğiz. Aşağıdaki çıktı penceresinde de görebileceğiniz gibi, “File_1.Program çalıştırıldıktan sonra robots.txt” dosyası oluşturuldu. Dosyaya herhangi bir içerik yazmadığımız için dosyanın boyutu sıfırdır.

Örnek 2: Bir Dosyaya Yazma

Bir önceki örnek programda size bir dosyanın nasıl açılacağını ve dosyanın nasıl kapatılacağını göstermiştik. Şimdi size bir dosyaya nasıl bir şey yazılacağını göstereceğiz.

Akış ekleme operatörünü kullanarak bir dosyaya yazabiliriz, i.e., “<<”. In this program, we have used the file handler and insertion operator to write two lines in the file. The insertion operator (“<<”) indicates that we are inserting the string into the output file stream object.

#Dahil etmek
ad alanı std kullanarak;
int ana()

akışı myFile_Handler;
// Dosya Aç
myFile_Handler.open("Dosya_1.Txt");
// Dosyaya yaz
myFile_Handler << "This is a sample test File. " << endl;
myFile_Handler << "This is the second line of the file. " << endl;
// Dosya Kapat
myFile_Handler.kapat();
0 döndür;

Şimdi yukarıdaki programı derleyip çalıştıracağız. Aşağıda gördüğünüz gibi File_1 dosyasına başarıyla yazdık.Txt.

Örnek 3: Bir Dosyadan Okuma

Önceki örneklerde, bir dosyaya nasıl içerik yazılacağını gösterdik. Şimdi Örnek-2'de oluşturduğumuz dosyadan içeriği okuyalım ve içeriği standart çıktı aygıtında görüntüleyelim, i.e., ekran.

Dosyadan tüm satırı okumak için getline() işlevini ve ardından satırı monitörde yazdırmak için "cout" işlevini kullanırız.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
int ana()

ifstream myFile_Handler;
dize myLine;
// Dosya Okuma Modunda Aç
myFile_Handler.open("Dosya_1.Txt");
if(myFile_Handler.açık())

// Dosyayı okumaya devam et
while(getline(myFile_Handler, myLine))

// satırı standart çıktıya yazdır
cout << myLine << endl;

// Dosya Kapat
myFile_Handler.kapat();

Başka

cout << "Unable to open the file!";

0 döndür;

Şimdi File_1 içeriğini yazdıracağız.txt dosyasını aşağıdaki komutu kullanarak oluşturun:  cat File_1.Txt. Programı derleyip çalıştırdığımızda, çıktının dosyanın içeriğiyle eşleştiği açıktır. Bu nedenle, dosyayı başarıyla okuduk ve dosyanın içeriğini monitöre yazdırdık.

Örnek 4: Bir Dosyaya Okuma ve Yazma

Şimdiye kadar size bir dosyayı nasıl açacağınızı, okuyacağınızı, yazacağınızı ve kapatacağınızı gösterdik. C++'da aynı anda bir dosyayı okuyup yazabiliriz. Bir dosyayı hem okumak hem de yazmak için bir fstream nesnesi almalı ve dosyayı “ios::in” ve “ios::out” modunda açmalıyız.

Bu örnekte, önce dosyaya bir miktar içerik yazıyoruz. Ardından dosyadaki verileri okuyup monitöre yazdırıyoruz.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
int ana()

fstream myFile_Handler;
dize myLine;
// Dosya Aç
myFile_Handler.open("Dosya_1.robots.txt", ios::in | ios::out);
// Dosyanın açılıp açılmadığını kontrol edin
Eğer(!myFile_Handler)

cout << "File did not open!";
çıkış(1);

// Dosyaya yaz
myFile_Handler << "1. This is another sample test File. " << endl;
myFile_Handler << "2. This is the second line of the file. " << endl;
myFile_Handler.searchg(ios::yalnız);
// Dosyayı Oku
if(myFile_Handler.açık())

// Dosyayı okumaya devam et
while( getline(myFile_Handler, myLine))

// satırı standart çıktıya yazdır
cout << myLine << endl;

// Dosya Kapat
myFile_Handler.kapat();

Başka

cout << "Unable to open the file!";

myFile_Handler.kapat();
0 döndür;

Şimdi programı derleyip çalıştıracağız.

Örnek 5: Bir İkili Dosyaya Okuma ve Yazma

Bu örnekte, bir sınıf bildireceğiz ve ardından nesneyi bir ikili dosyaya yazacağız. Bu örneği basitleştirmek için, Employee sınıfını emp_id genel değişkeni ile bildirdik. Ardından ikili dosyayı okuyacağız ve çıktıyı monitöre yazdıracağız.

#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
sınıf Çalışanı

halka açık:
int emp_id;
;
int ana()

ofstream binOutFile_Handler;
ifstream binInFile_Handler;
Çalışan empObj_W, empObj_R;
// Dosya Aç
binOutFile_Handler.open("Çalışan.dat", ios::out | ios::binary);
// Dosyanın açılıp açılmadığını kontrol edin
Eğer(!binOutFile_Handler)

cout << "File did not open!";
çıkış(1);

// empObj_W'yi başlat
empObj_W.em_id = 1512;
// Dosyaya yaz
binOutFile_Handler.write((char *) &empObj_W, sizeof(Çalışan));
binOutFile_Handler.kapat();
Eğer(!binOutFile_Handler.iyi())

cout << "Error occured during writing the binary file!" << endl;
çıkış(2);

// Şimdi çalışanı okuyalım.dat dosyası
binInFile_Handler.open("Çalışan.dat", ios::in | ios::binary);
// Dosyanın açılıp açılmadığını kontrol edin
Eğer(!binInFile_Handler)

cout << "File did not open!";
çıkış(3);

// ikili dosyanın içeriğini oku
binInFile_Handler.read((char *) &empObj_R, sizeof(Çalışan));
binInFile_Handler.kapat();
Eğer(!binInFile_Handler.iyi())

cout << "Error occured during reading the binary file!" << endl;
çıkış(4);

// empObj_R çıktısını yazdır
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
0 döndür;

Sonuç

Dosyalar esas olarak verileri depolamak için kullanılır ve gerçek dünya programlamasında önemli bir rol oynarlar. Bu yazımızda size C++ programlama dili ile çeşitli dosya işlemlerini birkaç örnek üzerinden çalışarak nasıl kullanacağınızı gösterdik. Ayrıca, hem metin dosyalarına hem de ikili dosyalara nasıl veri okunacağını ve yazılacağını gösterdik.

OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...