Differences
This shows you the differences between two versions of the page.
| Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
cpp:isteams [2020/05/17 17:55] gthanos |
cpp:isteams [2020/05/17 17:11] (current) |
| while(!cin.eof()) { | while(!cin.eof()) { |
| cin >> str; | cin >> str; |
| cout << str << " "; | cout << " -> " << str << endl; |
| } | } |
| } | } |
| // Read a line of maximum size 255 bytes. | // Read a line of maximum size 255 bytes. |
| cin.getline(str, 256); | cin.getline(str, 256); |
| cout << str << endl; | cout << " -> " << str << endl; |
| } | } |
| } | } |
| </code> | </code> |
| |
| Σε αυτή την περίπτωση θα πρέπει να είμαστε σίγουροι ότι το μέγιστο μήκος γραμμής δεν υπερβαίνει τους 256 χαρακτήρες μαζί με τον χαρακτήρα αλλαγής γραμμής. Διαφορετικά, μία γραμμή μπορεί να διαβαστεί σε περισσότερες από μία επαναλήψεις, εφόσον εντός των πρώτων 256 χαρακτήρων δεν απαντάται χαρακτήρας αλλαγής γραμμής. | Σε αυτή την περίπτωση δεν είναι αναγκαίο να γνωρίζουμε ότι το μέγιστο μήκος γραμμής δεν υπερβαίνει τους 256 χαρακτήρες μαζί με τον χαρακτήρα αλλαγής γραμμής. Εάν μία γραμμή υπερβαίνει το συγκεκριμένο μέγεθος, θα διαβαστεί σε περισσότερες από μία επαναλήψεις. |
| |
| Το παραπάνω δεν ισχύει εάν χρησιμοποιήσουμε την έκδοση της //getline// για την κλάση ''std::string''. Σε αυτή την περίπτωση δεν απαιτείται καμία μέριμνα για το μέγεθος των εισαγόμενων συμβολοσειρών, διότι η κλάση ''std::string'' μπορεί να αποθηκεύσει συμβολοσειρές μεταβλητού μήκους. Δείτε το ενδεικτικό παράδειγμα που ακολουθεί: | Ο παραπάνω περιορισμός δεν ισχύει εάν χρησιμοποιήσουμε την έκδοση της συνάρτησης //getline// για την κλάση ''std::string''. Σε αυτή την περίπτωση δεν απαιτείται καμία μέριμνα για το μέγεθος των εισαγόμενων συμβολοσειρών, διότι η κλάση ''std::string'' μπορεί να αποθηκεύσει συμβολοσειρές μεταβλητού μήκους και θεωρητικά άπειρου μεγέθους. Δείτε το ενδεικτικό παράδειγμα που ακολουθεί: |
| |
| <code cpp tokenize_using_std_string.cpp> | <code cpp tokenize_using_std_string.cpp> |
| while(!cin.eof()) { | while(!cin.eof()) { |
| getline(cin, str); | getline(cin, str); |
| cout << str << endl; | cout << " -> " << str << endl; |
| } | } |
| } | } |
| </code> | </code> |
| |