This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Previous revision | ||
|
cpp:basic_io [2021/04/25 14:14] |
cpp:basic_io [2021/04/25 15:14] gthanos [std::cin] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Βασική είσοδος και έξοδος ====== | ||
| + | |||
| + | Η C++ χρησιμοποιεί την έννοια του //stream// προκειμένου να διαβάσει ή να γράψει σε σειριακές συσκευές όπως είναι η κονσόλα και το πληκτρολόγιο. Ένα //stream// είναι μία ακολουθία χαρακτήρων άγνωστου μεγέθους. Ένα C++ πρόγραμμα μπορεί να γράψει σε ένα //stream// ή να διαβάσει χαρακτήρες από ένα //stream//, χωρίς να γνωρίζει τις λεπτομέρειες της εσωτερικής υλοποίησης της πηγής από την οποία διαβάζει ή στην οποία γράφει. Το μόνο που είναι απαραίτητο να γνωρίζουμε είναι ότι οι χαρακτήρες γράφονται σειριακά, | ||
| + | |||
| + | Η // | ||
| + | | <code cpp> | ||
| + | | <code cpp> | ||
| + | | <code cpp> | ||
| + | | <code cpp> | ||
| + | |||
| + | ===== std::cout ===== | ||
| + | |||
| + | Το //stream// **std:: | ||
| + | |||
| + | <code cpp cout.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | int main() { | ||
| + | cout << "Hello " << " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Βασικό χαρακτηριστικό των streams είναι ότι μπορείτε να εισάγετε στο stream ή να εξάγετε από το stream περισσότερες από μία ροές χαρακτήρων όπως δηλώνεται παραπάνω. | ||
| + | </ | ||
| + | |||
| + | Το παραπάνω είναι ισοδύναμο με το εξής: | ||
| + | |||
| + | <code cpp cout.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | int main() { | ||
| + | cout << "Hello " ; | ||
| + | cout << " | ||
| + | cout << endl; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Παρατηρείτε ότι αν και το //stream// ορίστηκε ως **std:: | ||
| + | </ | ||
| + | |||
| + | ===== std::cin ===== | ||
| + | |||
| + | Το //stream// **std:: | ||
| + | |||
| + | Χαρακτηριστικό του **std:: | ||
| + | |||
| + | <code cpp cin.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | int main() { | ||
| + | char firstname[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; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Το std::cin μετασχηματίζει τη λέξη που διάβασε στον τύπο δεδομένων της μεταβλητής στην οποία θα αποθηκευτεί η πληροφορία. | ||
| + | Για παράδειγμα, | ||
| + | |||
| + | Επίσης η εντολή | ||
| + | <code cpp> | ||
| + | cin >> firstname >> lastname; | ||
| + | </ | ||
| + | |||
| + | Το παραπάνω είναι ισοδύναμο με δύο διακριτές κλήσεις του **std:: | ||
| + | |||
| + | <code cpp> | ||
| + | cin >> firstname; | ||
| + | cin >> lastname; | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== std::cerr ===== | ||
| + | |||
| + | Το //stream// **std:: | ||
| + | |||
| + | <code cpp cerr.cpp> | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | int main() { | ||
| + | cout << "Hello " << " | ||
| + | cerr << "My " << "error log" << endl; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== std::clog ===== | ||
| + | |||
| + | Ανάλογο με το //stream// **std:: | ||
| + | |||
| + | |||
| + | |||