cpp:stringstreams
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| cpp:stringstreams [2019/05/20 08:38] – gthanos | cpp:stringstreams [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| 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.1558341533.txt.gz · Last modified: 2019/05/20 07:38 (external edit)
