This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Previous revision Next revision Both sides next revision | ||
|
cpp:isteams [2020/05/17 17:11] |
cpp:isteams [2020/05/17 18:09] gthanos |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Input Streams ====== | ||
| + | |||
| + | Όπως προαναφέρθηκε τα //streams// εισόδου χρησιμοποιούν τον τελεστη %%>> | ||
| + | |||
| + | <code cpp istream_example.cpp> | ||
| + | #include < | ||
| + | |||
| + | using namespace std; | ||
| + | |||
| + | int main() { | ||
| + | char c, str[256]; | ||
| + | int number; | ||
| + | double factor; | ||
| + | | ||
| + | cin >> c; | ||
| + | cout << "Read: " << c << endl; | ||
| + | cin >> str; | ||
| + | cout << "Read: " << str << endl; | ||
| + | cin >> number; | ||
| + | cout << "Read: " << number << endl; | ||
| + | cin >> factor; | ||
| + | cout << "Read: " << factor << endl; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Για είσόδο '' | ||
| + | < | ||
| + | Read: h | ||
| + | Read: ello | ||
| + | Read: -1512 | ||
| + | Read: 1.63 | ||
| + | </ | ||
| + | |||
| + | Παρατηρήστε ότι από την πρώτη κλήση διαβάζεται ένας χαρακτήρας, | ||
| + | |||
| + | ====== Διαβάζοντας λέξη-λέξη ή γραμμή-γραμμή ====== | ||
| + | |||
| + | Εάν πρόκειται να διαβάσουμε ένα κείμενο, | ||
| + | |||
| + | <code cpp input_word.cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | using namespace std; | ||
| + | |||
| + | int main() { | ||
| + | char str[256]; | ||
| + | while(!cin.eof()) { | ||
| + | cin >> str; | ||
| + | cout << " -> " << str << endl; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Το παραπάνω παράδειγμα για να δουλέψει με ασφάλεια θα πρέπει να είμαστε σίγουροι ότι η λέξη μέγιστου μήκους που θα διαβάσουμε θα έχει μέγεθος 255 χαρακτήρες (συν το χαρκτήρα ' | ||
| + | |||
| + | <code cpp input_line.cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | using namespace std; | ||
| + | |||
| + | int main() { | ||
| + | char str[256]; | ||
| + | while(!cin.eof()) { | ||
| + | // Read a line of maximum size 255 bytes. | ||
| + | cin.getline(str, | ||
| + | cout << str << | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Σε αυτή την περίπτωση δεν είναι αναγκαίο να γνωρίζουμε ότι το μέγιστο μήκος γραμμής δεν υπερβαίνει τους 256 χαρακτήρες μαζί με τον χαρακτήρα αλλαγής γραμμής. Εάν μία γραμμή υπερβαίνει το συγκεκριμένο μέγεθος, | ||
| + | |||
| + | Ο παραπάνω περιορισμός δεν ισχύει εάν χρησιμοποιήσουμε την έκδοση της συνάρτησης //getline// για την κλάση '' | ||
| + | |||
| + | <code cpp tokenize_using_std_string.cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | using namespace std; | ||
| + | |||
| + | int main() { | ||
| + | string str; | ||
| + | while(!cin.eof()) { | ||
| + | getline(cin, | ||
| + | cout << str << | ||
| + | } | ||
| + | } | ||
| + | </ | ||