CodeBlanks Logo Icon CodeBlanks

Özet - İleri dize

stringstream, stoi ve to_string'i birleştirerek bir CSV ayrıştırıcı yazarsın.

Özet: CSV satırını çözümle

Bu özette istringstream, stoi ve to_string'i birleştirerek bir CSV satırını çözümleyeceğiz. CSV, değerleri virgülle ayırır; örneğin "Ayşe,25,90" satırı ad, yaş ve not bilgisi taşır.

Adımı şudur: önce getline ile istringstream üzerinden virgüle kadar oku, sonra kalan iki değeri >> ile çek. Sayıları stoi ile çevir, sonuçu to_string ile metne kat. Böylece farklı dize işlemlerini tek bir görevde birleştirmiş olursun.

Uygulama CSV satırından ad ve yaş oku

#include <sstream> başlığını ekle. istringstream iss("Ayşe,25"); tanımla. string name; ve int age; değişkenlerini tanımla. getline(iss, name, ','); ile adı virgüle kadar oku; iss >> age; ile kalan tamsayıyı çek. cout << name << " - " << age << endl; ile yazdır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <string>
// sstream başlığını ekle
using namespace std;

int main() {
    // istringstream tanımla, getline ile adı oku, >> ile yaşı çek, yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main() {
    istringstream iss("Ayşe,25");
    string name;
    int age;
    getline(iss, name, ',');
    iss >> age;
    cout << name << " - " << age << endl;
    return 0;
}

Beklenen çıktı

Ayşe - 25

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 getline(iss, name, ',') ne yapar?

  • Tüm satırı tek dizeye alır
  • Akımdan virgüle kadar okur Doğru cevap
  • Sayıyı tamsayıya çevirir
  • Dizeye parça ekler

Açıklama: Üçüncü parametre ayraçtır; getline virgüle kadar okur.

2 İşlevi göreviyle eşleştir

Kavram Anlamı
istringstream Dizeyi akıma çevirir
getline Ayraca kadar okur
stoi Tamsayıya çevirir
to_string Dizeye çevirir

3 Boşluğu doldur: getline çağrısı

Soru
istringstream iss("Ali,30");
string name;
____(iss, name, ',');
Cevap
istringstream iss("Ali,30");
string name;
getline(iss, name, ',');

Açıklama: getline ile akımdan virgüle kadar okursun.

Başlangıç bölümündeki tüm dersler