ofstream ile Dosya Yazma
Çıktı dosyaları yazın
ofstream ile Dosya Yazma, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 2. 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.
ofstream nedir
std::ofstream (çıktı dosyası akışı), dosyalara veri yazar. std::cout gibi çalışır, ancak hedefi bir dosyadır.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("hello.txt");
out << "Hello, file!\n";
std::cout << "wrote file\n";
return 0;
}Metin yazma
Dizeleri ve sayıları, tıpkı konsola yazdırırken olduğu gibi, yazmak için << işlecini kullanın.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("report.txt");
out << "Score: " << 95 << '\n';
out << "Grade: A\n";
std::cout << "done\n";
return 0;
}Varsayılan olarak içeriği silme
Mevcut bir dosyayı ofstream ile açmak, önceki içeriğini siler. Her çalıştırma temiz bir başlangıç yapar.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("t.txt") << "old content\n";
std::ofstream out("t.txt");
out << "new content\n";
std::ifstream in("t.txt");
std::string line; std::getline(in, line);
std::cout << line << '\n';
return 0;
}Sona ekleme kipiyle yazma
Mevcut içeriği korumak ve sona yeni veri eklemek için std::ios::app aktarın.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("log.txt") << "line1\n";
std::ofstream out("log.txt", std::ios::app);
out << "line2\n";
out.close();
std::ifstream in("log.txt");
std::string l; int n = 0;
while (std::getline(in, l)) ++n;
std::cout << n << " lines\n";
return 0;
}Yazmanın başarılı olduğunu denetleme
Açtıktan sonra akışı denetleyin. Akış bad durumundaysa yazma işlemi sessizce başarısız olur.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("ok.txt");
if (!out) {
std::cout << "failed to open\n";
return 1;
}
out << "safe write\n";
std::cout << "write ok\n";
return 0;
}Sayıları yazma ve biçimlendirme
std::fixed ve std::setprecision gibi G/Ç biçimlendiricileri dosya akışlarına da uygulanır.
#include <iostream>
#include <fstream>
#include <iomanip>
int main() {
std::ofstream out("pi.txt");
out << std::fixed << std::setprecision(3) << 3.14159 << '\n';
out.close();
std::ifstream in("pi.txt");
std::string s; in >> s;
std::cout << s << '\n';
return 0;
}Bir veri döngüsü yazma
Döngü kullanarak çok sayıda satır yazın. Her yineleme dosyaya bir kayıt gönderir.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("squares.txt");
for (int i = 1; i <= 5; ++i) out << i << ' ' << i * i << '\n';
out.close();
std::cout << "wrote 5 rows\n";
return 0;
}Arabelleği diske aktarma
Çıktı arabelleğe alınır. std::flush veya std::endl, arabelleği hemen diske aktarmaya zorlar; kapatma işlemi de arabelleği aktarır.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("flush.txt");
out << "important" << std::flush;
std::cout << "flushed to disk\n";
return 0;
}endl ve yeni satır
'\n' yalnızca yeni satır ekler. std::endl yeni satır ekler ve arabelleği aktarır; bu nedenle sıkı döngülerde daha yavaştır.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("nl.txt");
out << "fast\n"; // newline only
out << "slow" << std::endl; // newline + flush
std::cout << "both written\n";
return 0;
}Önce yazıp sonra okuma
Yaygın bir kalıp şudur: verileri yazın, close işlemi yapın, ardından tekrar açıp geri okuyun.
#include <iostream>
#include <fstream>
int main() {
{
std::ofstream out("rt.txt");
out << 7 << ' ' << 8 << '\n';
}
std::ifstream in("rt.txt");
int a, b; in >> a >> b;
std::cout << a + b << '\n';
return 0;
}Açma kiplerini seçme
Bayrakları | ile birleştirin. Yaygın kipler: ios::out (varsayılan), ios::app (sona ekleme), ios::trunc (silme).
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("modes.txt", std::ios::out | std::ios::trunc);
out << "fresh\n";
std::cout << "opened with explicit modes\n";
return 0;
}Hızlı Kontrol
ofstream kipleri konusundaki anlayışınızı sınayın.
Özet
std::ofstream öğesinin:
<<ile yazdığını ve varsayılan olarak içeriği sildiğinistd::ios::appile sona ekleme yaptığını- çıktıyı arabelleğe aldığını;
std::flush/std::endl/kapatma işleminin çıktıyı diske gönderdiğini öğrendiniz
Sırada ikili dosya G/Ç işlemleriyle ham baytları ele alacaksınız.
Sıkça Sorulan Sorular
“ofstream ile Dosya Yazma” dersi ücretsiz mi?
Evet — “ofstream ile Dosya Yazma” 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.
“ofstream ile Dosya Yazma” dersinde ne öğreneceğim?
Çıktı dosyaları yazın 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 2. dersidir.
“ofstream ile Dosya Yazma” 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