Funkcja getline może przyjmować trzy parametry: źródło, element docelowy i znak, do który ma przerwać odczytywanie danych.
Gdy program będzie wyglądał tak:
a na wejściu otrzymamy:
12-05-2011
to wynikiem działania naszego programu będzie:
Wykorzystam teraz tę właściwość funkcji getline by podzielić otrzymany ciąg znaków. Miejscem cięcia będzie określony znak. Efektem podziału będzie odpowiedni vector:
Wynik działania powyższego kodu:
Gdy program będzie wyglądał tak:
#include <iostream> using namespace std; int main() { string s; while(getline(cin, s, '-')){ cout << s << endl; } return 0; }
a na wejściu otrzymamy:
12-05-2011
to wynikiem działania naszego programu będzie:
12 05 2011
Wykorzystam teraz tę właściwość funkcji getline by podzielić otrzymany ciąg znaków. Miejscem cięcia będzie określony znak. Efektem podziału będzie odpowiedni vector:
#include <iostream> #include <vector> #include <sstream> using namespace std; int main() { string s = "12-05-2013"; vector <string> el; stringstream ss(s); string item; while (getline(ss, item, '-')) { el.push_back(item); } for(int i=0;i<3;i++) { cout << el[i]; if(i<2) cout << "."; } return 0; }
Wynik działania powyższego kodu:
12.05.2013