Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
cpp:basic_io [2017/05/03 05:30] – [std::cout] gthanos | cpp:basic_io [2020/02/28 08:08] – gthanos |
---|
| <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> |
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> |
| |
Το παραπάνω είναι ισοδύναμο με το εξής: | Το παραπάνω είναι ισοδύναμο με το εξής: |
int main() { | int main() { |
cout << "Hello " ; | cout << "Hello " ; |
cout << "World! ; | cout << "World!" ; |
cout << endl; | cout << endl; |
} | } |
| |
<WRAP tip 80% center round> | <WRAP tip 80% center round> |
Βασικό χαρακτηριστικό των streams είναι ότι μπορείτε να εισάγετε στο stream ή να εξάγετε από το stream περισσότερες από μία ροές χαρακτήρων όπως δηλώνεται παραπάνω. | Παρατηρείτε ότι αν και το //stream// ορίστηκε ως **std::cout** στο πρόγραμμα αναγράφεται ως **cout**. Ο λόγος είναι η 2η γραμμή του προγράμματος ''using namespace std;'', η οποία δηλώνει ότι το πρόγραμμα χρησιμοποιεί το **namespace std**. |
</WRAP> | </WRAP> |
| |
<WRAP tip 80% center round> | ===== std::cin ===== |
Παρατηρείτε ότι αν και το //stream// ορίστηκε ως **std::cout** στο πρόγραμμα αναγράφεται ως **cout**. Ο λόγος είναι ότι | |
</WRAP> | |
| |
==== 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** είναι ότι διαβάζει λέξη-λέξη. Εάν θέλετε να διαβάσετε περισσότερες από μία λέξεις θα πρέπει να επαναλάβετε την κλάση όπως του 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 ως εξής: | Το παραπάνω είναι ισοδύναμο με δύο διακριτές κλήσεις του **std::cin** ως εξής: |
| |
<code cpp cin.cpp> | <code cpp cin.cpp> |
| |
| |
==== 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//. |