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 revision Previous revision
Previous revision
cpp:basic_io [2020/02/28 08:13]
gthanos
cpp:basic_io [2021/04/25 14:14]
Line 1: Line 1:
-====== Βασική είσοδος και έξοδος ====== 
- 
-Η C++ χρησιμοποιεί την έννοια του //stream// προκειμένου να διαβάσει ή να γράψει σε σειριακές συσκευές όπως είναι η κονσόλα και το πληκτρολόγιο. Ένα //stream// είναι μία οντότητα από την οποία ένα C++ πρόγραμμα μπορεί να γράψει ή να διαβάσει χαρακτήρες, χωρίς να γνωρίζει τις λεπτομέρειες τις εσωτερικής υλοποίησης του. Το μόνο που είναι απαραίτητο να γνωρίζουμε είναι ότι οι χαρακτήρες γράφονται σειριακά, ο ένας μετά τον άλλο. 
- 
-Η //standard// βιβλιοθήκη της C++ ορίζει τα παρακάτω τέσσερα (4) streams σε κάθε πρόγραμμα: 
-|  <code cpp>std::cin</code>  | standard input stream  |   
-|  <code cpp>td::cout</code>  | standard output stream  | 
-|  <code cpp>std::cerr</code>  | standard error stream  | 
-|  <code cpp>std::clog</code>  | standard log stream  | 
- 
-===== std::cout ===== 
- 
-Το //stream// **std::cout** είναι αντικείμενο της κλάσης //**ostream**// και συνδέεται με τη //standard// έξοδο του προγράμματος. Το αντικείμενο χρησιμοποιείται σε συνδυασμό με τον τελεστή **%%<<%%** (//stream insertion operator//). Δείτε το παρακάτω παράδειγμα χρήσης του //stream// **std::cout**. 
- 
-<code cpp cout.cpp> 
-#include <iostream> 
-using namespace std; 
-int main() { 
-  cout << "Hello " << "World!" << endl; 
-} 
-</code> 
- 
-<WRAP tip 80% center round> 
-Βασικό χαρακτηριστικό των streams είναι ότι μπορείτε να εισάγετε στο stream ή να εξάγετε από το stream περισσότερες από μία ροές χαρακτήρων όπως δηλώνεται παραπάνω. 
-</WRAP> 
- 
-Το παραπάνω είναι ισοδύναμο με το εξής: 
- 
-<code cpp cout.cpp> 
-#include <iostream> 
-using namespace std; 
-int main() { 
-  cout << "Hello " ; 
-  cout << "World!" ; 
-  cout << endl; 
-} 
-</code> 
- 
-<WRAP tip 80% center round> 
-Παρατηρείτε ότι αν και το //stream// ορίστηκε ως **std::cout** στο πρόγραμμα αναγράφεται ως **cout**. Ο λόγος είναι η 2η γραμμή του προγράμματος ''using namespace std;'', η οποία δηλώνει ότι το πρόγραμμα χρησιμοποιεί το **namespace std**. 
-</WRAP> 
- 
-===== std::cin ===== 
- 
-Το //stream// **std::cin** είναι αντικείμενο της κλάσης //**istream**// και συνδέεται με τη //standard// είσοδο του προγράμματος. Το αντικείμενο χρησιμοποιείται σε συνδυασμό με τον τελεστή **%%>>%%** (//stream extraction operator//). Δείτε το παρακάτω παράδειγμα χρήσης του //stream// **std::cin**. 
- 
-Χαρακτηριστικό του **std::cin** είναι ότι διαβάζει λέξη-λέξη. Εάν θέλετε να διαβάσετε περισσότερες από μία λέξεις θα πρέπει να επαναλάβετε την κλάση όπως του cin, όπως παρακάτω: 
- 
-<code cpp cin.cpp> 
-#include <iostream> 
-using namespace std; 
-int main() { 
-  char firstname[50], lastname[50]; 
-  cout << "Enter your first name followed by your last name: "; 
-  cin >> firstname >> lastname; 
-  cout << "Your name is: " << firstname << " " << lastname << endl; 
-  int age; 
-  count << "Enter your age:"; 
-  cin >> age; 
-  cout << "Your age is: " << age << endl; 
-} 
-</code> 
- 
-<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> 
-#include <iostream> 
-using namespace std; 
-int main() { 
-  char firstname[50], lastname[50]; 
-  cout << "Enter your first name followed by your last name: "; 
-  cin >> firstname; 
-  cin >> lastname; 
-  cout << "Your name is: " << firstname << " " << lastname << endl; 
-  int age; 
-  count << "Enter your age:"; 
-  cin >> age; 
-  cout << "Your age is: " << age << endl; 
-} 
-</code> 
- 
- 
-===== std::cerr ===== 
- 
-Το //stream// **std::cerr** είναι αντικείμενο της κλάσης //**ostream**// και συνδέεται με τη //standard error// του προγράμματος. Το αντικείμενο χρησιμοποιείται σε συνδυασμό με τον τελεστή %%<<%% (//stream insertion operator//). Το //stream// **std::cerr** είναι //unbuffered//, δηλαδή εμφανίζεται στην οθόνη χωρίς καθυστέρηση καθώς δεν μεσολαβεί κάποιο //buffer//. Δείτε το παρακάτω παράδειγμα χρήσης του //stream// **std::cerr**. 
- 
-<code cpp cerr.cpp> 
-#include <iostream> 
-using namespace std; 
-int main() { 
-  cout << "Hello " << "World!" 
-  cerr << "My " << "error log" << endl; 
-} 
-</code> 
- 
-===== std::clog ===== 
- 
-Ανάλογο με το //stream// **std::cerr** με τη διαφορά ότι το συγκεκριμένο //stream// είναι //buffered//. 
- 
- 
- 
  
cpp/basic_io.txt · Last modified: 2021/04/25 14:14 (external edit)