cpp:stringstreams
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
cpp:stringstreams [2019/05/20 08:38] – gthanos | cpp:stringstreams [2019/05/21 20:48] – [String streams] gthanos | ||
---|---|---|---|
Line 3: | Line 3: | ||
Εκτός από τις κλάσεις για ανάγνωση ή εγγραφή από αρχείο ή τα //stdin// και //stdout// η // | Εκτός από τις κλάσεις για ανάγνωση ή εγγραφή από αρχείο ή τα //stdin// και //stdout// η // | ||
- | * **istringstream: | + | * **istringstream: |
* **ostringstream: | * **ostringstream: | ||
- | * **stringstream: | + | * **stringstream: |
<code cpp stringstream.cpp> | <code cpp stringstream.cpp> | ||
#include < | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | using namespace std; | ||
int main() { | int main() { | ||
- | | + | |
| | ||
sstream << " | sstream << " | ||
- | | + | string token; |
- | | + | |
- | sstream >> token; | + | cout << token << |
- | cout << token " "; | + | |
} | } | ||
cout << endl; | cout << endl; | ||
+ | | ||
+ | cout << " | ||
+ | sstream.str("" | ||
+ | cout << " | ||
} | } | ||
</ | </ | ||
+ | |||
+ | <WRAP tip 80% center round> | ||
+ | Παρατηρήστε ότι καθώς διαβάζουμε το //stream// λέξη-λέξη το περιεχόμενο του //stream// παραμένει αμετάβλητο. Μπορείτε να | ||
+ | * Λάβετε το περιεχόμενο ενός // | ||
+ | * καθαρίσετε το περιεχόμενο // | ||
+ | </ | ||
+ | |||
+ | ===== Μετατροπή αριθμών σε strings και αντίστροφα ===== | ||
+ | |||
+ | Μπορούμε να χρησιμοποιήσουμε ένα // | ||
+ | |||
+ | <code cpp stringstream.cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | using namespace std; | ||
+ | |||
+ | int main() { | ||
+ | char cexpr[256]; | ||
+ | double opnd1, opnd2; | ||
+ | char op; | ||
+ | cout << "Enter arithmetic expression: "; | ||
+ | cin.getline(cexpr, | ||
+ | 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 << " | ||
+ | break; | ||
+ | } | ||
+ | cout << result << endl; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ |
cpp/stringstreams.txt · Last modified: 2019/05/21 19:49 (external edit)