Iostream: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Σύνδεσμος προς 2 βιβλία για επαληθευσιμότητα.) #IABot (v2.1alpha3
μ Bot: Replace deprecated <source> tag and "enclose" parameter.
 
Γραμμή 2:
{{C++ Πρότυπη βιβλιοθήκη}}
 
Το '''<code>iostream</code>''' είναι μέρος της πρότυπης βιβλιοθήκης της γλώσσας προγραμματισμού [[C++]] για την είσοδο/έξοδο δεδομένων. Στην πραγματικότητα είναι ένα ψευδώνυμο (typedef) για την εξειδίκευση του πρωτύπου κλάσης basic_iostream για είσοδο - έξοδο δεδομένων σε μορφή char. Παράγεται με διπλή κληρονομικότητα από τα πρότυπα κλάσεων basic_ostream και basic_istream. Τα αρχικά ''io'' στο όνομα της βιβλιοθήκης αναφέρονται στις αγγλικές λέξεις '''I'''nput/'''O'''utput '''Stream''' που μεταφράζονται ως είσοδος/έξοδος ροής (stream) δεδομένων. Η βιβλιοθήκη <code>iostream</code> παρέχει την βασική είσοδο/έξοδο σε ένα πρόγραμμα της C++. Το '''<code>cin</code>''' είναι αντικείμενο της istream (παράφραση του αγγλικού see-in που σημαίνει ''δες είσοδο''), και τα '''<code>cout</code>''' (παράφραση του αγγλικού see-out που σημαίνει ''δες έξοδο''), '''<code>cerr</code>''' (παράφραση του αγγλικού see-error που σημαίνει ''δες έξοδο λαθών''), και '''<code>clog</code>''' (παράφραση του αγγλικού see-log που σημαίνει ''δες έξοδο αρχείου καταγραφής'') αντικείμενα της ostream για την ροή δεδομένων στην τυπική έξοδο, την έξοδο λαθών και την έξοδο στο αρχείο καταγραφής αντίστοιχα. Όλα αυτά τα αντικείμενα βρίσκονται κάτω από το χώρο ονομάτων (namespace) '''<code>std</code>'''.<ref name="C++_stroustrup_fstrem">{{cite book | title=The C++ programming language | author=Bjarne Stroustrup | year=1997 | edition=3η | publisher=Addison-Wesley | pages=[https://archive.org/details/cprogramminglang00stro_0/page/637 637-640] | isbn=0-201-88954-4 | url=https://archive.org/details/cprogramminglang00stro_0/page/637 }}</ref><ref name="lippman_c++_iostream">{{cite book | title=C++ Primer | author1=Stanley B. Lippman | author2=Josee Lajoie | year=1999 | edition=3η | publisher=Addison-Wesley | location=Massachusetts | pages=[https://archive.org/details/cprimer00lipp/page/1063 1063-1067] | isbn=0-201-82470-1 | url=https://archive.org/details/cprimer00lipp/page/1063 }}</ref>
 
== Παραδείγματα ==
Ένα απλό παράδειγμα χρήσης είναι το [[Πρόγραμμα hello world|πρόγραμμα "hello world"]] που τυπώνει το μήνυμα "Γεια σου κόσμε!" μαζί με τον χαρακτήρα αλλαγής γραμμής ''\n'':
 
<sourcesyntaxhighlight lang="cpp">
#include <iostream>
 
Γραμμή 14:
return 0;
}
</syntaxhighlight>
</source>
 
Το '''<code>cout</code>''' είναι αντικείμενο της κλάσης '''<code>ostream</code>'''. Ο τελεστής ''<<'' υπερφορτώνεται στην ostream ώστε να στέλνει τα δεδομένα στην τυπική έξοδο (συνήθως είναι η οθόνη). Αντίστοιχα το '''<code>cin</code>''' είναι αντικείμενο της κλάσης '''<code>istream</code>'''. Ο τελεστή ''>>'' υπερφορτώνεται στην istream ώστε να δέχεται δεδομένα από την τυπική είσοδο (συνήθως είναι το πληκτρολόγιο). Ο τελεστής ''<<'' ή ''>>'' δείχνει συμβολικά την ροή των δεδομένων. Για παράδειγμα στο std::cout << "Γεια σου κόσμε!\n"; δείχνει την ροή από αριστερά προς τα δεξιά (δηλαδή στην έξοδο cout που παραφράσει το see out που σημαίνει ''δες την έξοδο''). Εναλλακτικά στην θέση του '\n' μπορεί να χρησιμοποιηθεί το '''<code>endl</code>''' που σημαίνει (end line - μεταφράζεται ως τέλος/αλλαγή γραμμής).
Γραμμή 20:
Στο παρακάτω παράδειγμα φαίνεται και η χρήση του <code>cin</code> για είσοδο:
 
<sourcesyntaxhighlight lang="cpp">
#include <iostream>
#include <string> // για το αντικείμενο τύπου αλφαριθμητικού string
Γραμμή 41:
return 0;
}
</syntaxhighlight>
</source>
 
Το '''<code>endl</code>''' είναι μια λειτουργία της εξόδου η οποία εκτός από την αλλαγή γραμμή, αδειάζει άμεσα την μνήμη (buffer εξόδου) ώστε να γίνει άμεσα η έξοδος (αυτό ιδιαίτερα είναι σημαντικό όταν η έξοδος είναι σε εξωτερικό αρχείο π.χ. χρησιμοποιώντας την βιβλιοθήκη [[fstream]]).
 
== Μορφοποίηση εξόδου ==
=== Μέθοδοι ===
 
{|class = wikitable
Γραμμή 58:
 
Παράδειγμα
<sourcesyntaxhighlight lang="cpp">
using namespace std;
 
cout.width(10);
cout << "ten" << "four" << "four";
</syntaxhighlight>
</source>
 
=== Προσαρμογή ροής ===
 
Ειδικά κλάσεις-αντικείμενα τα οποία ονομάζονται προσαρμοστές (manipulators) χρησιμοποιούνται για να προσαρμόσουν την γενική ροή δεδομένων μέσω των τελεστών εισόδου/εξόδου: <code><<</code> or <code>>></code>.
Γραμμή 90:
Περαιτέρω προσαρμογές της ροής δεδομένων μπορούν να γίνουν με την εξειδικευμένη βιβλιοθήκη για το σκοπό αυτό: <code>[[iomanip]]</code>.
 
== Δείτε επίσης ==
* [[fstream]]: Τυπική βιβλιοθήκη της C++ για είσοδο-έξοδο από-σε εξωτερικά αρχεία.
 
== Παραπομπές ==
<references />
 
Ανακτήθηκε από "https://el.wikipedia.org/wiki/Iostream"