Özet - İleri dize
- C++ kursu
- Başlangıç
- Ders 93/116
- 5 dk
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
#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
#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ı
istringstream iss("Ali,30");
string name;
____(iss, name, ',');
istringstream iss("Ali,30");
string name;
getline(iss, name, ',');
Açıklama: getline ile akımdan virgüle kadar okursun.