istringstream
- C++ kursu
- Orta seviye
- Ders 94/116
- 5 dk
istringstream ile dizeden okuma öğrenirsin.
istringstream ile ayrıştırma
std::istringstream bir dizeden veri okumayı sağlar. Bir dosya akışı gibi çalışır ama veri kaynağı bellekteki bir dizedir.
#include <sstream> başlığıyla gelir. Örnek: std::string veri = "10 20"; std::istringstream iss(veri); int a, b; iss >> a >> b;. Burada iss akışı veri dizesinden beslenir ve >> ile sayıları sırayla çeker. Bu yöntem, bir satırı parçalara ayırmak veya kullanıcı girdisini işlemek için çok pratiktir. Dosya okumadaki >> operatörünün tüm davranışları burada da geçerlidir.
>> ile dizeden çekme
istringstream üzerinde >> operatörü dizeden boşlukla ayrılmış parçaları sırayla çeker. Her çekme bir sonraki boşluğa kadar okur.
Örnek: std::istringstream iss("elma armut muz"); std::string a, b, c; iss >> a >> b >> c;. Burada a "elma", b "armut", c "muz" olur. Sayı okurken de aynı yöntem çalışır: dizedeki "10 20" iki tamsayıya dönüşür. Akış sonuna gelindiğinde >> başarısız olur ve değişken değişmez.
Uygulama Dizeden sayıları ayıkla ve topla
Başlangıç kodunda veri dizesi "10 20 30" içeriyor. std::istringstream ile bu dizeden üç sayıyı çek, topla ve std::cout ile yazdır.
Başlangıç kodu
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string veri = "10 20 30";
// Sayıları ayıkla ve topla
return 0;
}Örnek çözüm
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string veri = "10 20 30";
std::istringstream iss(veri);
int a, b, c;
iss >> a >> b >> c;
std::cout << a + b + c;
return 0;
}Beklenen çıktı
60
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 istringstream tanımla
std::____ iss(veri);
std::istringstream iss(veri);
Açıklama: std::istringstream dizeden okur.
2 istringstream hangi kaynaktan okur?
std::istringstream iss("10 20");- Bir dosyadan
- Klavyeden
- Bellekteki bir dizeden Doğru cevap
- Ağdan
Açıklama: istringstream bellekteki bir dizeden okur.
3 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
istringstream |
Dizeden okuma |
>> |
Veri çekme |
#include <sstream> |
Başlık dosyası |
iss(veri) |
Akışı dizeyle başlatma |