CodeBlanks Logo Icon CodeBlanks

istringstream

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

main.cpp
#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

main.cpp
#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

Soru
std::____ iss(veri);
Cevap
std::istringstream iss(veri);

Açıklama: std::istringstream dizeden okur.

2 istringstream hangi kaynaktan okur?

main.cpp
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

Orta seviye bölümündeki tüm dersler