| Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
cpp:basic_io [2017/05/03 05:34] gthanos [std::cin] |
cpp:basic_io [2021/04/25 15:06] gthanos [Βασική είσοδος και έξοδος] |
| Η //standard// βιβλιοθήκη της C++ ορίζει τα παρακάτω τέσσερα (4) streams σε κάθε πρόγραμμα: | Η //standard// βιβλιοθήκη της C++ ορίζει τα παρακάτω τέσσερα (4) streams σε κάθε πρόγραμμα: |
| | <code cpp>std::cin</code> | standard input stream | | | <code cpp>std::cin</code> | standard input stream | |
| | <code cpp>td::cout</code> | standard output stream | | | <code cpp>std::cout</code> | standard output stream | |
| | <code cpp>std::cerr</code> | standard error stream | | | <code cpp>std::cerr</code> | standard error stream | |
| | <code cpp>std::clog</code> | standard log stream | | | <code cpp>std::clog</code> | standard log stream | |
| |
| ==== std::cout ==== | ===== std::cout ===== |
| |
| Το //stream// **std::cout** είναι αντικείμενο της κλάσης //**ostream**// και συνδέεται με τη //standard// έξοδο του προγράμματος. Το αντικείμενο χρησιμοποιείται σε συνδυασμό με τον τελεστή **%%<<%%** (//stream insertion operator//). Δείτε το παρακάτω παράδειγμα χρήσης του //stream// **std::cout**. | Το //stream// **std::cout** είναι αντικείμενο της κλάσης //**ostream**// και συνδέεται με τη //standard// έξοδο του προγράμματος. Το αντικείμενο χρησιμοποιείται σε συνδυασμό με τον τελεστή **%%<<%%** (//stream insertion operator//). Δείτε το παρακάτω παράδειγμα χρήσης του //stream// **std::cout**. |
| using namespace std; | using namespace std; |
| int main() { | int main() { |
| cout << "Hello " << "World! << endl; | cout << "Hello " << "World!" << endl; |
| } | } |
| </code> | </code> |
| </WRAP> | </WRAP> |
| |
| ==== std::cin ==== | ===== std::cin ===== |
| |
| Το //stream// **std::cin** είναι αντικείμενο της κλάσης //**istream**// και συνδέεται με τη //standard// είσοδο του προγράμματος. Το αντικείμενο χρησιμοποιείται σε συνδυασμό με τον τελεστή **%%>>%%** (//stream extraction operator//). Δείτε το παρακάτω παράδειγμα χρήσης του //stream// **std::cin**. | Το //stream// **std::cin** είναι αντικείμενο της κλάσης //**istream**// και συνδέεται με τη //standard// είσοδο του προγράμματος. Το αντικείμενο χρησιμοποιείται σε συνδυασμό με τον τελεστή **%%>>%%** (//stream extraction operator//). Δείτε το παρακάτω παράδειγμα χρήσης του //stream// **std::cin**. |
| cin >> firstname >> lastname; | cin >> firstname >> lastname; |
| cout << "Your name is: " << firstname << " " << lastname << endl; | cout << "Your name is: " << firstname << " " << lastname << endl; |
| | int age; |
| | count << "Enter your age:"; |
| | cin >> age; |
| | cout << "Your age is: " << age << endl; |
| } | } |
| </code> | </code> |
| |
| Το παραπάνω είναι ισοδύναμο με δύο διακριτές κλήσεις του std::cin ως εξής: | <WRAP tip 80% center round> |
| | Το std::cin μετασχηματίζει τη λέξη που διάβασε στον τύπο δεδομένων της μεταβλητής στην οποία θα αποθηκευτεί η πληροφορία. |
| | Για παράδειγμα, στο παραπάνω πρόγραμμα διαβάζει ένα αλφαριθμητικό που αναμένουμε να περιέχει έναν ακέραιο και το αποθηκεύει στην ακέραια μεταβλητή age. |
| | |
| | Επίσης η εντολή |
| | <code cpp> |
| | cin >> firstname >> lastname; |
| | </code> |
| | είναι ισοδύναμη με τις παρακάτω δύο εντολές |
| | <code cpp> |
| | cin >> firstname; |
| | cin >> lastname; |
| | </code> |
| | |
| | </WRAP> |
| | |
| | Το παραπάνω είναι ισοδύναμο με δύο διακριτές κλήσεις του **std::cin** ως εξής |
| | </WRAP> |
| | Το παραπάνω είναι ισοδύναμο με δύο διακριτές κλήσεις του **std::cin** ως εξής: |
| |
| <code cpp cin.cpp> | <code cpp cin.cpp> |
| cin >> lastname; | cin >> lastname; |
| cout << "Your name is: " << firstname << " " << lastname << endl; | cout << "Your name is: " << firstname << " " << lastname << endl; |
| | int age; |
| | count << "Enter your age:"; |
| | cin >> age; |
| | cout << "Your age is: " << age << endl; |
| } | } |
| </code> | </code> |
| |
| |
| ==== std::cerr ==== | ===== std::cerr ===== |
| |
| Το //stream// **std::cerr** είναι αντικείμενο της κλάσης //**ostream**// και συνδέεται με τη //standard error// του προγράμματος. Το αντικείμενο χρησιμοποιείται σε συνδυασμό με τον τελεστή ''<<'' (//stream insertion operator//). Το //stream// **std::cerr** είναι //unbuffered//, δηλαδή εμφανίζεται στην οθόνη χωρίς καθυστέρηση καθώς δεν μεσολαβεί κάποιο //buffer//. Δείτε το παρακάτω παράδειγμα χρήσης του //stream// **std::cerr**. | Το //stream// **std::cerr** είναι αντικείμενο της κλάσης //**ostream**// και συνδέεται με τη //standard error// του προγράμματος. Το αντικείμενο χρησιμοποιείται σε συνδυασμό με τον τελεστή %%<<%% (//stream insertion operator//). Το //stream// **std::cerr** είναι //unbuffered//, δηλαδή εμφανίζεται στην οθόνη χωρίς καθυστέρηση καθώς δεν μεσολαβεί κάποιο //buffer//. Δείτε το παρακάτω παράδειγμα χρήσης του //stream// **std::cerr**. |
| |
| <code cpp cerr.cpp> | <code cpp cerr.cpp> |
| </code> | </code> |
| |
| ==== std::clog ==== | ===== std::clog ===== |
| |
| Ανάλογο με το //stream// **std::cerr** με τη διαφορά ότι το συγκεκριμένο //stream// είναι //buffered//. | Ανάλογο με το //stream// **std::cerr** με τη διαφορά ότι το συγκεκριμένο //stream// είναι //buffered//. |