User Tools

Site Tools


cpp:streams

This is an old revision of the document!


I/O Streams

Ένα stream είναι μία ακολουθία χαρακτήρων θεωρητικά άπειρου μεγέθους. Ένα stream μπορεί να χρησιμοποιηθεί για ανάγνωση από μία πηγή (π.χ. stdin, αρχείο, απομακρυσμένο αρχείο σε άλλο υπολογιστή ή το διαδίκτυο κλπ) ή για εγγραφή σε ένα προορισμό (π.χ. stdout, αρχείο στο σκληρό δίσκο, απομακρυσμένο αρχείο).

Ένα stream εισόδου (input stream) χρησιμοποιείται για ανάγνωση από μία πηγή. Η ανάγνωση γίνεται με τη βοήθεια του extraction operator (»). Αντίστοιχα, ένα stream εξόδου (output stream) για εγγραφή προς ένα προορισμό. Η εγγραφή πραγματοποιείται με τη βοήθεια του insertion operator («). Εκτός των παραπάνω υπάρχουν τα streams εισόδου και εξόδου τα οποία έχουν τη δυνατότητα παράλληλης ανάγνωσης και εγγραφής. Τα streams αυτής της κατηγορίας χρησιμοποιούν και τους δύο παραπάνω τελεστές.

Standard Streams

H C++ έρχεται με μία σειρά από standard streams, τα οποία είναι τα εξής:

  • std::cin: Stream για διάβασμα από το πληκτρολόγιο (stdin).
  • std::cout: Stream για γράψιμο στο stdout.
  • std::cerr: Stream για γράψιμο στο stderr. To συγκεκριμένο stream είναι unbuffered.
  • std::clog: Stream για γράψιμο στο stderr. To συγκεκριμένο stream είναι buffered.

Παράδειγμα χρήσης stream

ReadHeight.cpp
#include <iostream>
using namespace std;
 
int main() {
  double height;
 
  do {
    cout << "Enter your height (in meters): ";
    cin >> height;
 
    if(height > 0)
      break;
 
    cerr << "Invalid height. Try again..." << endl;
  } while(true);
 
  cout << "You height is: " << height << " meters." << endl;
}
cpp/streams.1557837262.txt.gz · Last modified: 2019/05/14 11:34 (external edit)