Menü Kapat

Stringlerde Akışlar

Standart C ++ kütüphanesi, >> ve << akış operatörlerini kullanarak ve bir dizeden(string) veri okumaya ve yazmaya izin veren bir std : : stringstream sınıfını tanımlar. Std : : stringstream sınıfı, <sstream> header dosyasında tanımlanmıştır. Std : : stringstream, std : : iostream sınıfından kalıtılır, bu nedenle bu sınıfın tüm özelliklerini devralır.

Aşağıdaki örnek, << operatörünü kullanarak bir std : : stringstream nesnesine istenilen verilerin nasıl yazılacağını göstermektedir. Kod pasajı bir kişinin adını, yaşını ve maaşını bir std : : stringstream nesnesine yazar.

#include <sstream>  // stringstream için.
#include <iostream>

    stringstream stream;
    stream << "Ahmet" << " " << 42 << " " << 15000 <<endl;

 

Aşağıdaki örnek, >> işleci kullanılarak bir std : : stringstream nesnesinden biçimlendirilmiş verilerin nasıl okunacağını gösterir. Kod pasajı, daha önce oluşturduğumuz std : : stringstream nesnesindeki kişinin adını, yaşını ve maaşını okur:

#include <iostream>
#include <sstream>

using namespace std;

int main(){
    stringstream stream;
    stream<<"ahmet"<<"  "<<42<<"  "<<1500<<endl;

    string x;
    int y;
    int z;
    stream>>x>>y>>z;

    cout<<x<<endl;
    cout<<y<<endl;
    cout<<z<<endl;

    return 0;
}

 

String Akışının İçeriğini Ayarlama ve Alma

Bir std : : stringstream nesnesinin içeriğini str () yöntemini çağırarak ayarlayabilir veya alabilirsiniz. Bu yöntemin iki aşırı yüklü sürümü vardır:

void str(const string & s);  // Bir string akışı içeriğini ayarlayın

string str() const;    // string akışı için içerik alın

 

Aşağıdaki kod parçası, bir dize akışının içeriğini nasıl ayarlayacağınızı ve alacağınızı gösterir:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main(){
    // stringstream nesnesi oluştur
    stringstream stream;
    // nesnenin içeriğini ayarla
    stream.str("mehmet 22 3000");

    // içeriği yazdır
    cout<<"Fonksiyon ile icerik okuma"<<endl;
    cout<<stream.str()<<endl;

    cout<<"*************************************"<<endl;

    //bir önceki yöntem ile içeriği okuma
    cout<<"icerigi tek tek okuma"<<endl;
    string x;
    int y,z;
    stream>>x>>y>>z;

    cout<<x<<endl;
    cout<<y<<endl;
    cout<<z<<endl;

    return 0;
}

Ekran Çıktısı

C:\Users\mehmetcane\CLionProjects\mehmetproje\cmake-build-debug\mehmetproje.exe
Fonksiyon ile icerik okuma
mehmet 22 3000
*************************************
icerigi tek tek okuma
mehmet
22
3000

Process finished with exit code 0

 

Bir yorum yazınız. Yorumlarınız bizim için değerlidir.