User Tools

Site Tools


cpp:streams

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
cpp:streams [2019/05/14 12:34] – [Standard Streams] gthanoscpp:streams [2019/05/21 03:51] – [Παράδειγμα χρήσης stream] gthanos
Line 1: Line 1:
 ====== I/O Streams ====== ====== I/O Streams ======
  
-Ένα //stream// είναι μία ακολουθία χαρακτήρων θεωρητικά άπειρου μεγέθους. Ένα //stream// μπορεί να χρησιμοποιηθεί για ανάγνωση από μία πηγή (π.χ. stdin, αρχείο, απομακρυσμένο αρχείο σε άλλο υπολογιστή ή το διαδίκτυο κλπ) ή για εγγραφή σε ένα προορισμό (π.χ. stdout, αρχείο στο σκληρό δίσκοαπομακρυσμένο αρχείο)+Η C++ εισάγει την έννοια του //stream//, ως μία ακολουθία από χαρακτήρες οι οποίοι μπορούν: 
 +  * να εισαχθούν στο //stream// με συγκεκριμένη σειρά και να γραφούν σε ένα αρχείο ή σε μία σειριακή συσκευή με τη σειρά που εισήχθησαν. 
 +  * να διαβαστούν από ένα αρχείο ή από μία σειριακή συσκευή με τη σειρά που είναι αποθηκευμένοι ή με τη σειρά που εισήχθησαν στη συσκευή.
  
-Ένα //stream// εισόδου (//**input stream**//) χρησιμοποιείται για ανάγνωση από μία πηγή. Η ανάγνωση γίνεται με τη βοήθεια του **extraction operator (>>)**. Αντίστοιχα, ένα //stream// εξόδου (//**output stream**//) για εγγραφή προς ένα προορισμό. Η εγγραφή πραγματοποιείται με τη βοήθεια του **insertion operator (<<)**. Εκτός των παραπάνω υπάρχουν τα //streams// εισόδου και εξόδου τα οποία έχουν τη δυνατότητα παράλληλης ανάγνωσης και εγγραφήςΤα //streams// αυτής της κατηγορίας χρησιμοποιούν και τους δύο παραπάνω τελεστές.+Βασικά χαρακτηριστικά των //streams// είναι τα εξής: 
 +  - Ένα //stream// μεταφράζεται πάντα σε μία ακολουθία χαρακτήρων. Τα //streams// δίνουν ένα ενιαίο τρόπο γραφής και ανάγνωσης προς τα αντικείμενα που τα χρησιμοποιούν για οποιοδήποτε μέσο επικοινωνίας ή αποθήκευσης. Εάν μία κλάση μπορεί να γράψει σε ένα //stream// τότε μπορεί να γράψει σε όλα τα πιθανά //streams//
 +  - Τα //streams// δουλεύουν αυτόματα με τους βασικούς τύπους δεδομένων. Για τους αναφορικούς τύπους μπορείτε να υπερφορτώσετε τους τελεστές %%>>%% και %%<<%% για είσοδο από το //stream// και έξοδο προς το //stream// αντίστοιχα. Η χρήση των τελεστών %%>>%% και %%<<%% απλοποιεί εξαιρετικά τον κώδικα για να γράψουμε σε ένα //stream// ή να διαβάσουμε από αυτό. 
 + 
 + 
 +Μπορείτε να σκέφτεστε τα //streams// ως ακολουθίες χαρακτήρων θεωρητικά άπειρου μεγέθους. Ένα //stream// μπορεί να είναι: 
 +  * **//stream// εισόδου:**, μπορεί να χρησιμοποιηθεί για ανάγνωση από μία πηγή (π.χ. //stdin//, αρχείο, απομακρυσμένο αρχείο σε άλλο υπολογιστή). Τα //streams// εισόδου χρησιμοποιούν τον τελεστη ''<<'' (//stream extraction operator//) για ανάγνωση.  
 +  * **//stream// εξόδου:**, μπορεί να χρησιμοποιηθεί για εγγραφή σε ένα προορισμό (π.χ. //stdout//, αρχείο στο σκληρό δίσκο, απομακρυσμένο αρχείο). τα //streams// εξόδου χρησιμοποιούν τον τελεστη ''<<'' (//stream insertion operator//) για εγγραφή. 
 +  * **//stream// εισόδου και εξόδου:** Μπορεί να χρησιμοποιηθεί ταυτόχρονα και για τις δύο παραπάνω λειτουργίες.
  
 ===== Standard Streams ===== ===== Standard Streams =====
Line 14: Line 24:
  
  
-===== Παράδειγμα χρήσης stream =====+===== Παράδειγμα χρήσης διαβάσματος στο cin και γραψίματος στα cout και cerr =====
  
 <code cpp ReadHeight.cpp> <code cpp ReadHeight.cpp>
cpp/streams.txt · Last modified: 2020/05/17 16:53 (external edit)