This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Next revision Both sides next revision | ||
|
cpp:streams [2020/05/17 16:53] |
cpp:streams [2020/05/17 17:41] gthanos |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== I/O Streams ====== | ||
| + | Η C++ εισάγει την έννοια του //stream//, ως μία ακολουθία από χαρακτήρες οι οποίοι μπορούν: | ||
| + | * να εισαχθούν στο //stream// με συγκεκριμένη σειρά και να γραφούν σε ένα αρχείο ή σε μία σειριακή συσκευή με τη σειρά που εισήχθησαν. | ||
| + | * να διαβαστούν από ένα αρχείο ή από μία σειριακή συσκευή με τη σειρά που είναι αποθηκευμένοι ή με τη σειρά που εισήχθησαν στη συσκευή. | ||
| + | |||
| + | Βασικά χαρακτηριστικά των //streams// είναι τα εξής: | ||
| + | - Ένα //stream// μεταφράζεται πάντα σε μία ακολουθία χαρακτήρων. Τα //streams// παρέχουν ένα ενιαίο τρόπο γραφής και ανάγνωσης προς τα αντικείμενα που τα χρησιμοποιούν ανεξάρτητα από το μέσο επικοινωνίας ή αποθήκευσης. Εάν μία κλάση μπορεί να γράψει σε ένα //stream// τότε μπορεί να γράψει σε όλα τα πιθανά // | ||
| + | - Τα //streams// δουλεύουν αυτόματα με τους βασικούς τύπους δεδομένων. Για τους αναφορικούς τύπους μπορείτε να υπερφορτώσετε τους τελεστές %%>> | ||
| + | |||
| + | |||
| + | Μπορείτε να σκέφτεστε τα //streams// ως ακολουθίες χαρακτήρων θεωρητικά άπειρου μεγέθους. Ένα //stream// μπορεί να είναι: | ||
| + | * **// | ||
| + | * **// | ||
| + | * **// | ||
| + | |||
| + | Στην παρακάτω εικόνα δίνεται η βασική διάρθρωση των //streams// της C++, όπου φαίνονται και οι μεταξύ τους σχέσεις κληρονομικότητας. Κάτω από το όνομα κάθε κλάσης αναφέρεται το όνομα του αρχείου στο οποιό δηλώνεται το // | ||
| + | |||
| + | {{ : | ||
| + | ===== Αλληλεπίδραση με τη βασική είσοδο και έξοδο ===== | ||
| + | |||
| + | H C++ έρχεται με μία σειρά από έτοιμα //streams// για αλληλεπίδραση με την κονσόλα. Τα //streams// αυτά είναι τα εξής: | ||
| + | * **std:: | ||
| + | * **std:: | ||
| + | * **std:: | ||
| + | * **std:: | ||
| + | |||
| + | |||
| + | ===== Παράδειγμα χρήσης διαβάσματος στο cin και γραψίματος στα cout και cerr ===== | ||
| + | |||
| + | <code cpp ReadHeight.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | |||
| + | int main() { | ||
| + | double height; | ||
| + | |||
| + | do { | ||
| + | cout << "Enter your height (in meters): "; | ||
| + | cin >> height; | ||
| + | |||
| + | if(height > 0) | ||
| + | break; | ||
| + | | ||
| + | cerr << " | ||
| + | } while(true); | ||
| + | | ||
| + | cout << "You height is: " << height << " meters." | ||
| + | } | ||
| + | </ | ||