logo

C++ Grundlegende Eingabe und Ausgabe (E/A)

Der C++-E/A-Vorgang verwendet das Stream-Konzept. Die Reihe von Bytes oder der Datenfluss wird als Stream bezeichnet. Es beschleunigt die Leistung.

Wenn Bytes vom Hauptspeicher an ein Gerät wie einen Drucker, einen Bildschirm, eine Netzwerkverbindung usw. übertragen werden, wird dies als Ausgabevorgang bezeichnet.

Ein Eingabevorgang erfolgt, wenn Bytes von einem Gerät wie einem Drucker, einem Bildschirm oder einer Netzwerkverbindung zum Hauptspeicher fließen.

In C++, vordefinierte Funktionen und Deklarationen werden über Header-Dateien bereitgestellt, sodass Sie bestimmte Aufgaben ausführen können, ohne von Anfang an neuen Code schreiben zu müssen. Einige wichtige Header-Dateien für Eingabe-/Ausgabeoperationen in C++ enthalten Funktionen zur effektiven Ausführung von Eingabe- und Ausgabeaufgaben. Die C++-Standardbibliothek, eine Sammlung von Klassen und Methoden, die in der Programmiersprache C++ erstellt wurden, enthält diese Header-Dateien. Lassen Sie uns die wichtigsten Header-Dateien für Eingabe-/Ausgabeoperationen besprechen:

Header-Datei Funktion und Beschreibung
Es wird verwendet, um die zu definieren cout, cin und cerr Objekte, die jeweils dem Standardausgabestream, dem Standardeingabestream und dem Standardfehlerstream entsprechen.
Es wird verwendet, um Dienste zu deklarieren, die für die Durchführung formatierter E/A nützlich sind, z setprecision und setw.
Es dient der Deklaration von Diensten zur benutzergesteuerten Dateiverarbeitung.

iostream: Es handelt sich um eine der wichtigsten Headerdateien für Ein-/Ausgabeoperationen in C++. Es steht für 'Input-Output' Strom. Für die Arbeit mit verschiedenen Formen von Eingabe-/Ausgabeströmen ist die iostream Die Header-Datei enthält die Klassen istream (Eingabestream) Und ostream (Ausgabestream) sowie die davon abgeleiteten Klassen ifstream, ofstream , Und Stringstream . Die am häufigsten verwendeten Klassen dieser Header-Datei sind cin (Standardeingabe) Und cout (Standardausgabe) , mit denen Sie Benutzereingaben lesen und Ausgaben auf der Konsole anzeigen können. Zum Beispiel:

 #include using namespace std; int main() { int num; cout <> num; cout << 'You entered: ' << num << endl; return 0; } 

Ausgabe

 Enter a number: 42 You entered: 42 

iomanip: Diese Header-Datei steht für „Input-Output-Manipulation“ . Es bietet Tools zum Formatieren Eingang Und Ausgabe . Es ermöglicht Ihnen, die zu ändern Ausrichtung, Breite, Präzision und andere Formatierungsfunktionen der Ein- und Ausgabe. Setw, Setprecision, fest, links, rechts , und andere regelmäßig verwendete Funktionen sind unten aufgeführt. Es ist besonders praktisch, um Daten auf eine bestimmte Art und Weise darzustellen.

Beispiel:

 #include #include using namespace std; int main() { double pi = 3.14159; cout << fixed << setprecision(2) << 'Value of pi: ' << pi << endl; return 0; } 

Ausgabe

Android-Versionen
 Value of pi: 3.14 

Strom: Die Header-Datei für Datei-Eingabe-/Ausgabeoperationen wird aufgerufen fstream . Es umfasst Klassen zum Lesen und Schreiben von Dateien ifstream (Eingabedateistream) Und ofstream (Ausgabedateistream) . Das System verwendet diese Klassen, um schreibgeschützte und schreibgeschützte Dateien zu öffnen.

Beispiel:

 #include #include using namespace std; int main() { ofstream outputFile('output.txt'); if (outputFile.is_open()) { outputFile << 'Hello, File I/O!'; outputFile.close(); cout << 'File is written successfully.' << endl; } else { cout << 'Failed to open the file.' << endl; } return 0; } 

Ausgabe

 The file was written successfully. 

Diese Header-Dateien gehören zu den wichtigsten für C++-Eingabe-/Ausgabeaufgaben. Jedes hat einen bestimmten Zweck und bietet die notwendigen Werkzeuge, um Aufgaben im Zusammenhang mit Eingabe und Ausgabe erfolgreich zu verwalten, unabhängig davon, ob es sich um die Interaktion mit dem handelt Konsole, Formatierung der Ausgabe , oder mit Dateien arbeiten.

In C++ verwenden wir häufig 'using namespace std;' nach den Header-Dateien. Der Namespace std; Die Anweisung wird in C++ häufig verwendet, um den Code bei der Arbeit mit Standardbibliothekskomponenten zu optimieren. Sehen wir uns die Funktion und Anwendung dieser Aussage genauer an:

A Namensraum ist eine Technik zum Gruppieren ähnlicher Bezeichner (z. B Klassen, Funktionen , Und Variablen ), um Namenskonflikte zu vermeiden. Die C++-Standardbibliothek stellt ihre Teile (wie cin, cout usw.) unter dem std-Namespace bereit.

Der Begriff 'Standard' wird verkürzt auf 'Standard' , und alle Elemente der Standardbibliothek sind darin enthalten. Dadurch werden Namenskonflikte mit in Ihrem Code eingerichteten Bezeichnern reduziert.

Lassen Sie uns nun darüber sprechen, warum der using namespace std; Anweisung wird verwendet:

Ohne Verwendung des Namespace std:

 #include int main() { std::cout << 'Hello, world!' << std::endl; return 0; } With using namespace std: #include using namespace std; int main() { cout << 'Hello, world!' << endl; return 0; } 

Wie Sie sehen können, verwenden Sie die Namespace std; Mit der Anweisung können Sie Folgendes weglassen std:: Präfix beim Zugriff auf Standardbibliothekskomponenten. Dadurch wird Ihr Code kürzer und besser lesbar, da Sie ihn nicht wiederholen müssen Standard:: vor jeder Standardbibliothekskennung.

Header-Dateien der I/O-Bibliothek

Standardausgabestream (cout):

Das Cout-Objekt ist ein vordefiniertes Objekt der Ostream-Klasse. Es wird an das Standardausgabegerät angeschlossen, bei dem es sich normalerweise um einen Bildschirm handelt. Der cout wird in Kombination mit dem Stream-Einfügungsoperator (<<) to show the output on a console< p>

Sehen wir uns das einfache Beispiel eines Standardausgabestreams (cout) an:

 #include using namespace std; int main( ) { char ary[] = &apos;Welcome to C++ tutorial&apos;; cout &lt;&lt; &apos;Value of ary is: &apos; &lt;&lt; ary &lt;&lt; endl; } 

Ausgabe

 Value of ary is: Welcome to C++ tutorial 

Standard-Eingabestream (cin)

Der Essen ist ein vordefiniertes Objekt von Strom Klasse. Es wird mit dem Standard-Eingabegerät verbunden, bei dem es sich in der Regel um eine Tastatur handelt. Der Cin wird in Verbindung mit dem Stream-Extraktionsoperator (>>) verwendet, um die Eingabe von einer Konsole zu lesen.

Sehen wir uns das einfache Beispiel eines Standard-Eingabestreams (cin) an:

 #include using namespace std; int main( ) { int age; cout &lt;&gt; age; cout &lt;&lt; &apos;Your age is: &apos; &lt;&lt; age &lt;&lt; endl; } 

Ausgabe

 Enter your age: 22 Your age is: 22 

Standard-Endlinie (endl)

Der endl ist ein vordefiniertes Objekt von unser Feind Klasse. Es wird verwendet, um neue Zeilenzeichen einzufügen und den Stream zu leeren.

Sehen wir uns das einfache Beispiel einer Standard-Endzeile (endl) an:

 #include using namespace std; int main( ) { cout &lt;&lt; &apos;C++ Tutorial&apos;; cout &lt;&lt; &apos; Javatpoint&apos;&lt;<endl; cout << 'end of line'<<endl; } < pre> <p> <strong>Output</strong> </p> <pre> C++ Tutorial Javatpoint End of line </pre> <h3>Un-buffered standard error stream (cerr):</h3> <p> <strong> <em>cerr</em> </strong> stands for <strong> <em>&apos;standard error&apos;</em> .</strong> </p> <p>It is an unbuffered stream, meaning that output sent to <strong> <em>cerr</em> </strong> is immediately displayed on the console without buffering.</p> <p>It is typically used for displaying error messages and diagnostic information, which need to be displayed immediately to avoid delays caused by buffering.</p> <p> <strong>Example: using cerr:</strong> </p> <pre> #include int main() { std::cerr &lt;&lt; &apos;This is an error message.&apos; &lt;&lt; std::endl; return 0; } </pre> <p> <strong>Output</strong> </p> <pre> This is an error message. </pre> <h3>buffered standard error stream (clog):</h3> <p>clog stands for <strong> <em>&apos;standard log&apos;</em> </strong> . It is a buffered stream, similar to cout. It&apos;s often used for writing informational or diagnostic messages that are less time-sensitive than errors. The use of buffering can improve performance when displaying a large number of messages.</p> <p> <strong>Example: using clog</strong> </p> <pre> #include int main() { std::clog &lt;&lt; &apos;This is an informational message.&apos; &lt;&lt; std::endl; return 0; } </pre> <p> <strong>Output</strong> </p> <pre> This is an informational message. </pre> <p>In both examples, the output will appear on the console. However, the main difference between <strong> <em>cerr</em> </strong> and <strong> <em>clog</em> </strong> lies in their buffering behavior. Due to its unbuffered nature, messages given to <strong> <em>cerr</em> </strong> are displayed right away, but messages sent to clog may be buffered for greater speed. However, they will still eventually appear on the console.</p> <h4>Note: It is important to remember that the type of message you wish to display will determine whether you use cerr or clog. Use cerr for essential messages that need immediate attention (like error messages) and use clog for less critical diagnostic or informational messages that can be buffered for better performance.</h4> <hr></endl;>

Ungepufferter Standardfehlerstrom (cerr):

cerr steht für 'Standart Fehler' .

Es handelt sich um einen ungepufferten Stream, d. h. die Ausgabe, an die gesendet wird cerr wird ohne Pufferung sofort auf der Konsole angezeigt.

Es wird typischerweise zur Anzeige von Fehlermeldungen und Diagnoseinformationen verwendet, die sofort angezeigt werden müssen, um Verzögerungen durch Pufferung zu vermeiden.

Beispiel: Verwendung von cerr:

 #include int main() { std::cerr &lt;&lt; &apos;This is an error message.&apos; &lt;&lt; std::endl; return 0; } 

Ausgabe

 This is an error message. 

gepufferter Standardfehlerstrom (Clog):

Clog steht für 'Standardprotokoll' . Es handelt sich um einen gepufferten Stream, ähnlich wie cout. Es wird häufig zum Schreiben von Informations- oder Diagnosemeldungen verwendet, die weniger zeitkritisch sind als Fehler. Durch die Verwendung von Pufferung kann die Leistung bei der Anzeige einer großen Anzahl von Nachrichten verbessert werden.

Beispiel: Verwendung von Clog

 #include int main() { std::clog &lt;&lt; &apos;This is an informational message.&apos; &lt;&lt; std::endl; return 0; } 

Ausgabe

 This is an informational message. 

In beiden Beispielen erscheint die Ausgabe auf der Konsole. Der Hauptunterschied zwischen cerr Und verstopfen liegt in ihrem Pufferverhalten. Aufgrund seiner ungepufferten Natur werden Nachrichten an gegeben cerr werden sofort angezeigt, an Clog gesendete Nachrichten werden jedoch möglicherweise gepuffert, um die Geschwindigkeit zu erhöhen. Sie werden jedoch irgendwann trotzdem auf der Konsole erscheinen.

Hinweis: Es ist wichtig zu bedenken, dass die Art der anzuzeigenden Meldung bestimmt, ob Sie cerr oder clog verwenden. Verwenden Sie cerr für wichtige Meldungen, die sofortige Aufmerksamkeit erfordern (z. B. Fehlermeldungen), und verwenden Sie clog für weniger kritische Diagnose- oder Informationsmeldungen, die für eine bessere Leistung gepuffert werden können.