ifstream ile Dosya Okuma
Metin ve verileri okuyun
ifstream ile Dosya Okuma, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.
ifstream nedir
std::ifstream (girdi dosyası akışı), dosyalardan veri okur. std::cin gibi çalışır, ancak kaynağı diskteki bir dosyadır.
<fstream>içinde tanımlanır.- Yapıcısında adı verilen bir dosyayı açar.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("demo.txt") << "hello\n";
std::ifstream in("demo.txt");
std::string word;
in >> word;
std::cout << word << '\n';
return 0;
}Dosya açma
Bir ifstream nesnesini dosya adıyla oluşturun, ardından dosyanın bulunup bulunmadığını is_open() ile denetleyin.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("data.txt") << "42\n";
std::ifstream in("data.txt");
std::cout << (in.is_open() ? "opened" : "failed") << '\n';
return 0;
}Sözcükleri okuma
>> işleci, tıpkı cin kullanımında olduğu gibi, boşluklarla ayrılmış belirteçleri okur.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("words.txt") << "alpha beta gamma\n";
std::ifstream in("words.txt");
std::string w;
while (in >> w) std::cout << w << '\n';
return 0;
}Sayıları okuma
Sayısal türleri doğrudan alabilirsiniz. Akıştan veri alma işlemi, metni uygun türe ayrıştırır.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("nums.txt") << "10 20 30\n";
std::ifstream in("nums.txt");
int sum = 0, x;
while (in >> x) sum += x;
std::cout << "sum = " << sum << '\n';
return 0;
}getline ile satırları okuma
Boşluklar da dahil olmak üzere satırın tamamını, yeni satıra kadar okumak için std::getline() kullanın.
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ofstream("lines.txt") << "first line\nsecond line\n";
std::ifstream in("lines.txt");
std::string line;
while (std::getline(in, line)) std::cout << "[" << line << "]\n";
return 0;
}Dosyanın tamamını okuma
Bir dosyanın tamamını tek seferde okumak için akış arabelleği yineleyicilerini kullanarak dosyayı bir dizeye okuyun.
#include <iostream>
#include <fstream>
#include <sstream>
int main() {
std::ofstream("all.txt") << "line1\nline2\n";
std::ifstream in("all.txt");
std::stringstream ss;
ss << in.rdbuf();
std::cout << ss.str();
return 0;
}Dosya sonunu algılama
Bir okuma döngüsü, genellikle dosyanın sonunda olmak üzere, veri alma işlemi başarısız olduğunda sona erer. Akışı bir koşulda denetlemek bunu kontrol eder.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("eof.txt") << "1 2 3\n";
std::ifstream in("eof.txt");
int x, count = 0;
while (in >> x) ++count;
std::cout << "read " << count << " numbers\n";
std::cout << "eof: " << std::boolalpha << in.eof() << '\n';
return 0;
}Eksik dosyayı ele alma
Dosya mevcut değilse akış başarısız durumuna geçer ve is_open() false olur. Okumadan önce her zaman denetleyin.
#include <iostream>
#include <fstream>
int main() {
std::ifstream in("does_not_exist_12345.txt");
if (!in) {
std::cout << "could not open file\n";
}
return 0;
}Yapılandırılmış satırları ayrıştırma
Her satırdaki alanları ayrıştırmak için getline ile istringstream öğesini birlikte kullanın.
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
int main() {
std::ofstream("people.txt") << "Alice 30\nBob 25\n";
std::ifstream in("people.txt");
std::string line;
while (std::getline(in, line)) {
std::istringstream ss(line);
std::string name; int age;
ss >> name >> age;
std::cout << name << " is " << age << '\n';
}
return 0;
}open ve close işlemleri
Varsayılan olarak oluşturulmuş bir akışı daha sonra open() ile açabilir ve close() ile serbest bırakabilirsiniz.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("oc.txt") << "data\n";
std::ifstream in;
in.open("oc.txt");
std::string s; in >> s;
in.close();
std::cout << s << '\n';
return 0;
}RAII sizin yerinize kapatır
Bir ifstream kapsamından çıktığında yıkıcısı dosyayı otomatik olarak kapatır. Elle close() çağırmak nadiren gerekir.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("raii.txt") << "x\n";
{
std::ifstream in("raii.txt");
std::string s; in >> s;
std::cout << s << '\n';
} // file closed here automatically
std::cout << "closed\n";
return 0;
}Hızlı Kontrol
Satır okuma konusundaki anlayışınızı sınayın.
Özet
std::ifstream öğesinin:
>>vestd::getlinekullanarak dosyalardan okuma yaptığınıis_open()ile veya akışı denetleyerek kontrol edilmesi gerektiğini- kapsamından çıktığında RAII aracılığıyla otomatik olarak kapandığını öğrendiniz
Sırada ofstream ile dosyalara yazma var.
Sıkça Sorulan Sorular
“ifstream ile Dosya Okuma” dersi ücretsiz mi?
Evet — “ifstream ile Dosya Okuma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.
“ifstream ile Dosya Okuma” dersinde ne öğreneceğim?
Metin ve verileri okuyun C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C++ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“ifstream ile Dosya Okuma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- ifstream ile Dosya Okuma
- ofstream ile Dosya Yazma
- İkili Dosya G/Ç
- Hata İşleme ve Durum