cpp:stringstreams
This is an old revision of the document!
Table of Contents
String streams
Εκτός από τις κλάσεις για ανάγνωση ή εγγραφή από αρχείο ή τα stdin και stdout η standard βιβλιοθήκη της C++ παρέχει κλάσεις για ανάγνωση και εγγραφή από ένα string. Οι βασικές κλάσεις είναι οι εξής (παρέχονται αντίστοιχες κλάσεις και για wstrings, με τα οποία δεν θα ασχοληθούμε):
- istringstream: stream για διάβασμα από ένα string/. * ostringstream: stream για γράψιμο σε ένα string/.
- stringstream: stream για διάβασμα και γράψιμο σε ένα string.
- stringstream.cpp
#include <iostream> #include <sstream> #include <string> using namespace std; int main() { stringstream sstream; sstream << "Introducing C++ in CE325"; string token; while( sstream >> token ) { cout << token << " "; } cout << endl; cout << "Stream contents: " << sstream.str() << endl; cout << "Stream contents: " << sstream.str() << endl; }
Μετατροπή αριθμών σε strings και αντίστροφα
Μπορούμε να χρησιμοποιήσουμε ένα stringstream προκειμένου να διαβάσουμε ή να γράψουμε ακέραιους ή αριθμούς κινητής υποδιαστολή από ένα string. Το παρακάτω παράδειγμα είναι αποκαλύπτικό:
- stringstream.cpp
#include <iostream> #include <sstream> #include <string> using namespace std; int main() { char cexpr[256]; double opnd1, opnd2; char op; cout << "Enter arithmetic expression: "; cin.getline(cexpr, 256); istringstream sstream(cexpr); sstream >> opnd1 >> op >> opnd2; double result=0; switch(op) { case '+': result = opnd1 + opnd2; break; case '-': result = opnd1 - opnd2; break; case '*': result = opnd1 * opnd2; break; case '/': result = opnd1 / opnd2; break; default: cout << "ERROR\n"; break; } cout << result << endl; }
cpp/stringstreams.1558352283.txt.gz · Last modified: 2019/05/20 10:38 (external edit)