User Tools

Site Tools


cpp:basic_io

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
Last revisionBoth sides next revision
cpp:basic_io [2017/05/03 05:33] – [std::cout] gthanoscpp:basic_io [2021/04/25 15:14] – [std::cin] gthanos
Line 1: Line 1:
 ====== Βασική είσοδος και έξοδος ====== ====== Βασική είσοδος και έξοδος ======
  
-Η C++ χρησιμοποιεί την έννοια του //stream// προκειμένου να διαβάσει ή να γράψει σε σειριακές συσκευές όπως είναι η κονσόλα και το πληκτρολόγιο. Ένα //stream// είναι μία οντότητα από την οποία ένα C++ πρόγραμμα μπορεί να γράψει ή να διαβάσει χαρακτήρες, χωρίς να γνωρίζει τις λεπτομέρειες τις εσωτερικής υλοποίησης του. Το μόνο που είναι απαραίτητο να γνωρίζουμε είναι ότι οι χαρακτήρες γράφονται σειριακά, ο ένας μετά τον άλλο.+Η C++ χρησιμοποιεί την έννοια του //stream// προκειμένου να διαβάσει ή να γράψει σε σειριακές συσκευές όπως είναι η κονσόλα και το πληκτρολόγιο. Ένα //stream// είναι μία ακολουθία χαρακτήρων άγνωστου μεγέθους. Ένα C++ πρόγραμμα μπορεί να γράψει σε ένα //stream// ή να διαβάσει χαρακτήρες από ένα //stream//, χωρίς να γνωρίζει τις λεπτομέρειες της εσωτερικής υλοποίησης της πηγής από την οποία διαβάζει ή στην οποία γράφει. Το μόνο που είναι απαραίτητο να γνωρίζουμε είναι ότι οι χαρακτήρες γράφονται σειριακά, ο ένας μετά τον άλλο.
  
 Η //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**.
  
 <code cpp cout.cpp> <code cpp cout.cpp>
Line 17: Line 17:
 using namespace std; using namespace std;
 int main() { int main() {
-  cout << "Hello " << "World! << endl;+  cout << "Hello " << "World!<< endl;
 } }
 </code> </code>
 +
 +<WRAP tip 80% center round>
 +Βασικό χαρακτηριστικό των streams είναι ότι μπορείτε να εισάγετε στο stream ή να εξάγετε από το stream περισσότερες από μία ροές χαρακτήρων όπως δηλώνεται παραπάνω.
 +</WRAP>
  
 Το παραπάνω είναι ισοδύναμο με το εξής: Το παραπάνω είναι ισοδύναμο με το εξής:
Line 32: Line 36:
 } }
 </code> </code>
- 
-<WRAP tip 80% center round> 
-Βασικό χαρακτηριστικό των streams είναι ότι μπορείτε να εισάγετε στο stream ή να εξάγετε από το stream περισσότερες από μία ροές χαρακτήρων όπως δηλώνεται παραπάνω. 
-</WRAP> 
  
 <WRAP tip 80% center round> <WRAP tip 80% center round>
Line 41: Line 41:
 </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**.
  
-Χαρακτηριστικό του **std::cin** είναι ότι διαβάζει λέξη-λέξη. Εάν θέλετε να διαβάσετε περισσότερες από μία λέξεις θα πρέπει να επαναλάβετε την κλάση όπως του cin, όπως παρακάτω:+Χαρακτηριστικό του **std::cin** είναι ότι διαβάζει λέξη-λέξη. Εάν θέλετε να διαβάσετε περισσότερες από μία λέξεις θα πρέπει να επαναλάβετε την κλήση όπως παρακάτω:
  
 <code cpp cin.cpp> <code cpp cin.cpp>
Line 55: Line 55:
   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.cpp+Επίσης η εντολή 
-#include <iostream+<code cpp
-using namespace std; +  cin >> firstname >> lastname; 
-int main() { +</code
-  char firstname[50], lastname[50]; + 
-  cout << "Enter your first name followed by your last name: ";+Το παραπάνω είναι ισοδύναμο με δύο διακριτές κλήσεις του **std::cin** ως εξής: 
 + 
 +<code cpp>
   cin >> firstname;   cin >> firstname;
   cin >> lastname;   cin >> lastname;
-  cout << "Your name is: " << firstname << " " << lastname << endl; 
-} 
 </code> </code>
 +
 +</WRAP>
 +
  
  
-==== 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>
Line 86: Line 95:
 </code> </code>
  
-==== std::clog ====+===== std::clog =====
  
 Ανάλογο με το //stream// **std::cerr** με τη διαφορά ότι το συγκεκριμένο //stream// είναι //buffered//. Ανάλογο με το //stream// **std::cerr** με τη διαφορά ότι το συγκεκριμένο //stream// είναι //buffered//.
cpp/basic_io.txt · Last modified: 2021/04/25 14:14 (external edit)