Merak etmeye başladım - aslında std::ios::in
ve std::ios::out
'un aslında çalışması gereken std::fstream
nasıl? Ne yapmalı? Boş bir dosyaya (örneğin) bir şeyler yaz, sonra oku ... ne? Sadece yazılı değer? "İşaretçi"/"İmleç" dosyası nerede olur? Belki de cevaplar zaten oradaydı ama onu bulamadım.std :: fstream'in hem içeride hem de dışarıda çalışması gerekiyor?
cevap
std::fstream
nedir?
std::fstream
iki yönlü bir dosya akışı sınıfıdır. Yani, dosyalar için hem girdi hem de çıktı için bir arayüz sağlar. Bir kullanıcının aynı harici diziden okuması ve yazması gerektiğinde yaygın olarak kullanılır.
(std::ofstream
veya std::ifstream
aksine) iki yönlü bir dosya akışı başlatmasını, openmodes ios_base::in
ve ios_base::out
varsayılan tarafından belirtilir.
std::fstream f("test.txt", std::ios_base::in | std::ios_base::out);
onlar da bazı varsayılan olmayan openmodes eklemek gerekirse her iki seçeneği belirtmek istiyorum
std::fstream f("test.txt");
biri aynıdır böyle trunc
, ate
, app
veya binary
olarak: Bu, bu demektir. çift yönlü I/O için yeni bir dosya oluşturmayı düşünüyorsanız ios_base::trunc
openmode gereklidir, çünkü ios_base::in
openmode yeni bir dosyanın oluşturulmasını devre dışı bırakır.
çift yönlü I/O
çift yönlü I/O girişi hem de çıktı için bir çift yönlü akımı kullanılmasıdır. IOStreams'de, standart akışlar, karakter dizilerini, bir kaynak olarak veya bir veri kaynağı olarak yer aldığı bir tamponda tutmaktadır. Çıkış akışları için bir "koyma" alanı (çıktı için karakterleri tutan tampon) var. Aynı şekilde, giriş akışları için "get" alanı vardır. std::fstream
durumunda
(her ikisi de giriş ve çıkış için bir sınıfı), her iki get temsil eden bir ortak bir dosya tamponu tutan ve sırasıyla alan koydu. Dosyadaki mevcut konumu işaret eden konum göstergesi, hem giriş hem de çıkış işlemlerinden etkilenir.
- Bir yazma veya tersi sonra okuma gerçekleştirmek, dere geri yerleştirilmesi gerekir: Bunun gibi, sırayla iki yönlü akışta doğru I/O'yu gerçekleştirmek için, izlemeniz gereken bazı kurallar vardır.
- Bir giriş işlemi, dosya sonuna isabet ederse, daha sonra doğrudan bir yazma işlemi gerçekleştirilir.
Bu yalnızca std::fstream
anlamına gelir. Yukarıdaki kurallar std::stringstream
için gerekli değildir.
Umarım bunlar sorularınızı cevaplar. Daha fazla varsa, sadece yorumlarda isteyebilirsiniz.
- 1. AngularJS'de neden hem giriş hem de ng modeli belirtmem gerekiyor?
- 2. Hem $ _GET hem de $ _POST
- 3. JPA: Hem QueryCriteria'da hem de
- 4. Hem jquery.js hem de scriptaculous.js dosyalarını kullanın?
- 5. Hem Cassandra (NoSQL) hem de mysql (RDBMS)
- 6. Hem .aspx hem de .cs dosyalarını dağıtın
- 7. Hem x86 hem de x64 için derleme
- 8. NSLog() hem konsol hem de dosyaya
- 9. Hem istemci hem de sunucuyu ana
- 10. Hem NSMutableString hem de NSString'e sahip olmanın amacı nedir?
- 11. Aynı sunucu, hem SSL hem de SSL olmayan
- 12. Aşırı yükleme * operatörü hem sağ hem de solda çalışmak için
- 13. Urllib2 ile Python'da hem cookieler hem de proxy kullanarak
- 14. Neden hem mex bitiş noktasına hem de httpGetEnable'a ihtiyacım var?
- 15. Bir zincirdeki tüm sertifikaların alınması; hem ara hem de kök
- 16. Hem jpg hem de png için meta verileri yaz
- 17. Eş zamanlı olarak hem arka hem de ön kameralara erişme
- 18. Hem Powermock hem de JMockit ünite testleri için test kapsamı
- 19. Hem CryptoJS hem de Java Code farklı çıktı şifrelemesi
- 20. Hem iOS hem de Mac OS'de çalışan yazma sınıfları
- 21. Hem boyut hem de zamana göre günlükleri kaydetme
- 22. Android Emulator: Hem yumuşak giriş hem de sabit klavye girişi
- 23. R paketi hem Windows hem de Linux'ta çalışıyor
- 24. Python, hem dosya hem de terminal için çıkış nasıl gönderilir
- 25. iOS'ta hem mobil safari hem de uygulama için Benzersiz Tanımlayıcı
- 26. Bir soket nasıl hem bağlanabilir hem de kapatılabilir?
- 27. Hem Waze hem de Google haritalarının açılmasına yönelik Android amacı
- 28. Hem iPhone hem de Android için uygulama geliştirme
- 29. Metin dosyasından hem char hem de satır tarafından okunabilir
- 30. Crossorigin özniteliğinin amacı ...? Hem resim hem de komut dosyası etiketlerinde