C ++ Basic Input / Output: Cout, Cin, Cerr Παράδειγμα

Πίνακας περιεχομένων:

Anonim

Τι είναι οι ροές στο C ++;

Το C ++ παρέχει στους χρήστες έναν αριθμό βιβλιοθηκών που μπορούν να χρησιμοποιήσουν για την εκτέλεση εργασιών εισόδου / εξόδου. Αυτές οι εργασίες γίνονται με τη μορφή ακολουθιών byte, που ονομάζονται δημοφιλείς ροές.

Οι ροές χωρίζονται σε δύο:

Τύποι ροών

  • Ρεύμα εισόδου: Πρόκειται για έναν τύπο ροής όπου τα byte ρέουν από μια συσκευή όπως ένα πληκτρολόγιο στην κύρια μνήμη.
  • Έξοδος ροής: Πρόκειται για έναν τύπο ροής όπου τα byte ρέουν προς την αντίθετη κατεύθυνση, δηλαδή, από την κύρια μνήμη και στη συνέχεια στη συσκευή, όπως η οθόνη προβολής.

Σε αυτό το σεμινάριο C ++ θα μάθετε:

  • Τι είναι οι ροές στο C ++;
  • Πώς λειτουργούν οι ροές;
  • Πίνακας λειτουργιών
  • Αρχεία κεφαλίδας C ++ για είσοδο / έξοδο
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: φράξιμο
  • Σφάλμα χειρισμού με ροές IO:

Πώς λειτουργούν οι ροές;

Οι ροές C ++ λειτουργούν ως εξής:

  1. Αρχικά, μια ροή αρχικοποιείται με τον σωστό τύπο.
  2. Στη συνέχεια, θα πρέπει να δηλώσετε πού θα συμβεί το I / O χρησιμοποιώντας δείκτες get / put.
  3. Αφού φτάσετε στη σωστή τοποθεσία σε μια ροή, μπορείτε να εκτελέσετε εργασίες εισόδου και εξόδου χρησιμοποιώντας χειριστές >> και << αντίστοιχα.

Πίνακας λειτουργιών

Ακολουθούν οι συναρτήσεις που παρέχονται στο αρχείο κεφαλίδας stream.h:

Τάξη Λειτουργίες
Filebuf Ρυθμίζει buffer αρχείων για ανάγνωση / εγγραφή. Έχει συναρτήσεις κλεισίματος () και ανοίγματος ()
fstreambase Είναι η βασική τάξη για τις τάξεις ifstream, fstream και ofstream. Οι λειτουργίες του είναι κοινές στις ροές αρχείων.
ifstream Είναι μια κλάση ροής αρχείων εισόδου για την παροχή λειτουργιών εισαγωγής.
της ροής Είναι μια τάξη ροής αρχείων εξόδου για την παροχή λειτουργιών εξόδου.
ρεύμα Είναι μια τάξη ροής εισόδου / εξόδου. Υποστηρίζει ταυτόχρονες λειτουργίες εισόδου / εξόδου.

Αρχεία κεφαλίδας C ++ για είσοδο / έξοδο

Το C ++ παρέχει τρεις βιβλιοθήκες που διαθέτουν λειτουργίες για την εκτέλεση βασικών εργασιών εισόδου / εξόδου. Περιλαμβάνουν:

  • Iostream: Είναι αρκτικόλεξο για τυπική ροή εισόδου / εξόδου. Αυτό το αρχείο κεφαλίδας συνοδεύεται από ορισμούς για αντικείμενα όπως cin / cout / cerr.
  • Iomanip: Είναι αρκτικόλεξο για χειριστές εισόδου / εξόδου. Η βιβλιοθήκη διαθέτει λειτουργίες που μπορούν να χρησιμοποιηθούν για το χειρισμό ροών. Περιέχει ορισμούς για αντικείμενα όπως setw, setprecision και άλλα.
  • Fstream: Αυτό είναι ένα αρχείο κεφαλίδας για την περιγραφή της ροής αρχείων. Διαχειρίζεται δεδομένα που διαβάζονται από το αρχείο ως είσοδο ή που γράφονται σε ένα αρχείο, την έξοδο.

Οι λέξεις-κλειδιά cin και cout είναι πολύ δημοφιλείς στο C ++. Χρησιμοποιούνται για τη λήψη εισόδων και εκτύπωσης εξόδων, αντίστοιχα. Για να τα χρησιμοποιήσετε, πρέπει να συμπεριλάβετε το αρχείο κεφαλίδας iostream στο πρόγραμμά σας. Ο λόγος είναι ότι ορίζονται σε αυτό το αρχείο κεφαλίδας. Η αποτυχία συμπερίληψης του αρχείου κεφαλίδας iostream θα δημιουργήσει σφάλμα. Αυτό προκύπτει από την αποτυχία του μεταγλωττιστή C ++ να κατανοήσει την έννοια των λέξεων-κλειδιών.

Τα κύρια αντικείμενα που ορίζονται στο αρχείο κεφαλίδας iostream είναι cin, cout, cerr και clog. Ας τα συζητήσουμε.

std :: cout

Το αντικείμενο cout είναι μια παρουσία της κλάσης iostream. Χρησιμοποιείται για την παραγωγή εξόδου σε μια τυπική συσκευή εξόδου, η οποία είναι συνήθως η οθόνη. Χρησιμοποιείται μαζί με τον τελεστή εισαγωγής ροής (<<).

Παράδειγμα:

#include using namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}

Παραγωγή:

Ακολουθεί ένα στιγμιότυπο οθόνης του κώδικα:

Επεξήγηση κώδικα:

  1. Συμπεριλάβετε το αρχείο κεφαλίδας iostream όπου ορίζεται το αντικείμενο cout.
  2. Συμπεριλάβετε το χώρο ονομάτων std, ώστε να μην χρειάζεται να το καλέσουμε όταν χρησιμοποιούμε τις τάξεις του.
  3. Καλέστε την κύρια λειτουργία (). Ο κωδικός προγράμματος πρέπει να προστεθεί στο σώμα του. Το άνοιγμα σγουρό στήριγμα {σηματοδοτεί την αρχή του σώματός του.
  4. Δημιουργήστε μια μεταβλητή χαρακτήρων που ονομάζεται Welcome για να κρατήσετε τη συμβολοσειρά Welcome to Guru99.
  5. Εκτυπώστε την τιμή της υποδοχής συμβολοσειράς στην κονσόλα. Το endl είναι μια λέξη-κλειδί C ++ που σημαίνει τελική γραμμή. Μετακινεί τον κέρσορα για να ξεκινήσει η εκτύπωση κειμένου στην επόμενη γραμμή.
  6. Το πρόγραμμα πρέπει να επιστρέψει την τιμή κατά την επιτυχή εκτέλεση.
  7. Τέλος του κυρίως σώματος της λειτουργίας ().

std :: cin

Το αντικείμενο cin είναι μια παρουσία της κατηγορίας istream. Διαβάζει είσοδο από τη συσκευή εισόδου, το πληκτρολόγιο. Συνήθως χρησιμοποιείται μαζί με τον χειριστή εξαγωγής (>>). Το αντικείμενο εξαγωγής είναι υπεύθυνο για την εξαγωγή δεδομένων που εισάγονται μέσω του πληκτρολογίου από το αντικείμενο cin.

Παράδειγμα:

Το ακόλουθο παράδειγμα δείχνει πώς να χρησιμοποιήσετε τη λέξη-κλειδί cin στο C ++:

#include using namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}

Παραγωγή:

Ακολουθεί ένα στιγμιότυπο οθόνης του κώδικα:

Επεξήγηση κώδικα:

  1. Συμπεριλάβετε το αρχείο κεφαλίδας iostream στο πρόγραμμά μας. Το αντικείμενο cin ορίζεται σε αυτό το αρχείο κεφαλίδας.
  2. Συμπεριλάβετε το χώρο ονομάτων std για να χρησιμοποιήσετε τις τάξεις του. Δεν θα χρειαστεί να καλέσετε το std όταν χρησιμοποιείτε τις τάξεις του.
  3. Καλέστε την κύρια λειτουργία (). Ο κωδικός προγράμματος πρέπει να προστεθεί στο σώμα του.
  4. Η αρχή του σώματος του προγράμματος.
  5. Δηλώστε μια ακέραια μεταβλητή με όνομα.
  6. Εκτυπώστε ένα μήνυμα στην οθόνη ζητώντας από το χρήστη να εισαγάγει έναν αριθμό.
  7. Διαβάστε την τιμή που εισήγαγε ο χρήστης στην κονσόλα από το πληκτρολόγιο.
  8. Εκτυπώστε την τιμή που διαβάζεται παραπάνω στην κονσόλα μαζί με άλλο κείμενο.
  9. Το πρόγραμμα θα πρέπει να επιστρέφει μια τιμή εάν εκτελείται με επιτυχία.
  10. Τέλος του σώματος της κύριας λειτουργίας.

std :: cerr

Το αντικείμενο cerr σχηματίζει την τυπική ροή σφαλμάτων για την παραγωγή σφαλμάτων στο C ++. Το Cerr είναι ένα παράδειγμα της κατηγορίας ostream. Το αντικείμενο cerr δεν έχει ζητηθεί. Αυτό σημαίνει ότι χρησιμοποιείται όταν ένα μήνυμα σφάλματος πρόκειται να εμφανιστεί αμέσως.

Δεδομένου ότι δεν έχει ζητηθεί, δεν αποθηκεύει μήνυμα σφάλματος για μεταγενέστερη εμφάνιση. Χρησιμοποιείται μαζί με τον τελεστή εισαγωγής ροής (<<).

Παράδειγμα:

#include using namespace std;int main() {cerr << "An Error occurred!";return 0;}

Παραγωγή:

Ακολουθεί ένα στιγμιότυπο οθόνης του κώδικα:

Επεξήγηση κώδικα:

  1. Συμπεριλάβετε το αρχείο κεφαλίδας iostream όπου έχει οριστεί το αντικείμενο cerr.
  2. Συμπεριλάβετε το χώρο ονομάτων std, ώστε να μην χρειάζεται να το καλέσουμε όταν χρησιμοποιούμε τις τάξεις του.
  3. Καλέστε την κύρια λειτουργία (). Η λογική του προγράμματος πρέπει να προστεθεί στο σώμα του. Το άνοιγμα σγουρό στήριγμα σηματοδοτεί την αρχή του σώματος της λειτουργίας.
  4. Χρησιμοποιήστε το αντικείμενο cerr για να εκτυπώσετε ένα σφάλμα στην κονσόλα.
  5. Το πρόγραμμα πρέπει να επιστρέψει μια τιμή κατά την επιτυχή εκτέλεση.
  6. Τέλος του σώματος της κύριας λειτουργίας.

std :: φράξιμο

Το αντικείμενο clog είναι μια παρουσία της κλάσης ostream. Χρησιμοποιείται για την εμφάνιση σφαλμάτων στην τυπική οθόνη, στην οθόνη. Είναι παρόμοιο με το αντικείμενο cerr, αλλά είναι buffer. Δεδομένου ότι είναι buffer, αποθηκεύει το μήνυμα σφάλματος στο buffer έως ότου το buffer γεμίσει / ξεπλυθεί. Χρησιμοποιείται μαζί με τον τελεστή εισαγωγής ροής (<<).

Παράδειγμα:

#include using namespace std;int main() {clog << "An Error occurred!";return 0;}

Παραγωγή:

Ακολουθεί ένα στιγμιότυπο οθόνης του κώδικα:

Επεξήγηση κώδικα:

  1. Συμπεριλαμβανομένου του αρχείου κεφαλίδας iostream στο οποίο ορίζεται το αντικείμενο clog.
  2. Συμπεριλαμβανομένου του χώρου ονομάτων std ώστε να μπορούμε να χρησιμοποιήσουμε τις τάξεις του χωρίς να το καλέσουμε.
  3. Κλήση της κύριας λειτουργίας (). Η λογική του προγράμματος πρέπει να προστεθεί στο σώμα του. Το {σηματοδοτεί την αρχή του σώματος της συνάρτησης.
  4. Χρησιμοποιήστε το αντικείμενο clog για να εκτυπώσετε ένα σφάλμα στην τυπική έξοδο, στην οθόνη.
  5. Το πρόγραμμα πρέπει να επιστρέψει μια τιμή μετά την επιτυχή ολοκλήρωση.
  6. Το τέλος του κυρίως σώματος της συνάρτησης ().

Σφάλμα χειρισμού με ροές IO:

Για να ελέγξετε εάν μια ροή είναι έγκυρη ή όχι, μπορείτε να τη χρησιμοποιήσετε ως Boolean.

Εδώ είναι ένα παράδειγμα:

ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}

Για να λάβετε περισσότερες λεπτομέρειες για την κατάσταση ροής, μπορείτε να χρησιμοποιήσετε αυτές τις λειτουργίες:

  • καλό () - θα επιστρέψει αληθινό εάν όλα είναι εντάξει.
  • bad () - θα επιστρέψει αληθές εάν παρουσιαστεί ανεπανόρθωτο σφάλμα.
  • fail () - θα επιστρέψει αληθινή μετά από ανεπιτυχή λειτουργία ροής.
  • eof () - θα επιστρέψει αληθές εάν φτάσει στο τέλος ενός αρχείου.

Για να μάθετε εάν μια συγκεκριμένη λειτουργία ανάγνωσης / εγγραφής απέτυχε, ελέγξτε το αποτέλεσμα ανάγνωσης.

Για παράδειγμα, για να ελέγξετε αν ο χρήστης εισήγαγε έναν έγκυρο ακέραιο, κάντε το:

int p;if ( cin >> p ){cout << "Enter valid number" << endl;}

Περίληψη

  • Οι εργασίες εισαγωγής και εξόδου στο C ++ πραγματοποιούνται μέσω ακολουθίας byte. Τα byte ονομάζονται ροές.
  • Σε μια ροή εισόδου, τα byte ρέουν από τη συσκευή εισόδου όπως ένα πληκτρολόγιο στην κύρια μνήμη.
  • Σε μια ροή εξόδου, τα byte από την κύρια μνήμη στη συνέχεια σε μια συσκευή εξόδου όπως μια οθόνη.
  • Το αντικείμενο cin είναι μια παρουσία της κατηγορίας istream. Διαβάζει είσοδο από μια συσκευή εισόδου όπως το πληκτρολόγιο.
  • Το αντικείμενο cout είναι μια παρουσία της κλάσης ostream. Παράγει έξοδο σε συσκευές εξόδου όπως η οθόνη.
  • Το αντικείμενο cerr είναι μια παρουσία της κατηγορίας ostream. Εμφανίζει αντικείμενα σφάλματος στην οθόνη.
  • Το αντικείμενο απόφραξης είναι παρουσία της κλάσης ostream. Εμφανίζει μηνύματα σφάλματος σε συσκευές εξόδου.
  • Το αντικείμενο clog αποθηκεύει μηνύματα σφάλματος, ενώ το αντικείμενο cerr δεν το κάνει.