2008-11-23 16 views

Odpowiedz

5

Bardzo nieformalnie: ciąg jest zbiorem znaków, strumień jest narzędziem do manipulowania ruchomymi danymi. Strumień ciągów jest klasą C++, która umożliwia użycie ciągu znaków jako źródła i miejsca docelowego danych dla strumienia.

Również ... google to twój przyjaciel.

+13

Stackoverflow ma być zasobem typu wiki, znajdującym się na szczycie wielu wyszukiwań Google. Ludzie mogą zadawać dowolne pytania, jeśli wcześniej ich nie zadano. – fluffels

3

Domyślam się, że strumień łańcuchowy jest podobny do iostream, ale zamiast pisać lub czytać z pliku, zapisujesz lub czytasz z łańcucha.

8
  • istream i ostream: interfejsy do przesyłania strumienia danych (pliki, gniazda, itp)
  • istringstream: AN istream że owija ciąg i oferuje jej zawartość
  • ostringstream: AN ostream który zapisuje zawartość do pisemnego jest w postaci łańcucha

przykład:

istringstream datastream("1 2 3"); 

int val; 
datastream >> val; 
cout << val << endl; // prints 1 

datastream >> val; 
cout << val << endl; // prints 2 

datastream >> val; 
cout << val << endl; // prints 3 


ostringstream outstream; 
outstream << 1 << "+" << 2 << "=" << 3; 
cout << outstream.str() << endl; // prints "1+2=3" 
1

W języku C i/lub Uniksie podstawową metaforą był plik. Standardowe, standardowe w gniazdach sieciowych były reprezentowane za pomocą deskryptorów plików. W ten sposób można użyć fprintf(), aby pisać do tych "plików", nie wiedząc, co naprawdę jest pod spodem.

Jako bezpieczniejsza i zimniejsza alternatywa, C++ zaprezentowało iostream jako podstawową metaforę, która jest prawie wbudowana w język przy użyciu operatora <<. Znowu dostęp do plików, łańcuchów i (z biblioteką) sieci można uzyskać za pomocą strumieni, nie wiedząc, co to jest.