Ein- und Ausgabemethoden

Es gibt zwei verschiedene Ansätze für die Konsolen-E/A, von deren Auswahl abhängig ist, wie viel Flexibilität und Kontrolle eine Anwendung benötigt. Der allgemeine Ansatz ermöglicht einfache Zeichenstrom-E/A, beschränkt jedoch den Zugriff auf die Eingabe- und Bildschirmpuffer einer Konsole. Der Ansatz auf niedriger Ebene erfordert, dass Entwickler mehr Code schreiben und unter einer größeren Palette von Funktionen wählen, bietet aber auch eine größere Flexibilität bei der Anwendung.

Hinweis

Der Low-Level-Ansatz wird nicht für neue und laufende Entwicklung empfohlen. Anwendungen, die Funktionalität von den I/O-Funktionen auf niedriger Ebene benötigen, werden empfohlen, virtuelle Terminalsequenzen zu verwenden und unsere Dokumentation zu klassischen Funktionen im Vergleich zu virtuellen Terminals und der Ökosystem-Roadmap zu erkunden.

Eine Anwendung kann die Datei-E/A-Funktionen, ReadFile und WriteFile sowie die Konsolenfunktionen ReadConsole und WriteConsole für allgemeine E/A-Funktionen verwenden, die indirekten Zugriff auf die Eingabe- und Bildschirmpuffer einer Konsole bieten. Die Eingabefunktionen auf hoher Ebene filtern und verarbeiten die Daten im Eingabepuffer einer Konsole, um Eingaben als Zeichenstrom zurückzugeben, maus- und pufferverändernde Eingaben auszuschließen. Ebenso schreiben die Ausgabefunktionen auf hoher Ebene einen Datenstrom von Zeichen, die an der aktuellen Cursorposition in einem Bildschirmpuffer angezeigt werden. Eine Anwendung steuert, wie diese Funktionen funktionieren, indem sie die E/A-Modi einer Konsole festlegen.

Die E/A-Funktionen auf niedriger Ebene bieten direkten Zugriff auf die Eingabe- und Bildschirmpuffer einer Konsole, sodass eine Anwendung auf Eingabeereignisse für Maus- und Pufferänderungen und erweiterte Informationen für Tastaturereignisse zugreifen kann. Ausgabefunktionen auf niedriger Ebene ermöglichen es einer Anwendung, aus einer bestimmten Anzahl aufeinander folgender Zeichenzellen in einem Bildschirmpuffer zu lesen oder in rechteckige Blöcke von Zeichenzellen an einer bestimmten Stelle in einem Bildschirmpuffer zu lesen oder zu schreiben. Die Eingabemodi einer Konsole wirken sich auf Eingaben auf niedriger Ebene aus, indem die Anwendung bestimmen kann, ob Maus- und Pufferänderungsereignisse im Eingabepuffer platziert werden. Die Ausgabemodi einer Konsole haben keine Auswirkungen auf die Ausgabe auf niedriger Ebene.

Die high-level- und low-level I/O-Methoden schließen sich nicht gegenseitig aus, und eine Anwendung kann eine beliebige Kombination dieser Funktionen verwenden. In der Regel verwendet eine Anwendung jedoch einen Ansatz oder den anderen ausschließlich und wir empfehlen, sich auf ein bestimmtes Paradigma zu konzentrieren, um optimale Ergebnisse zu erzielen.

Tipp

Die ideale zukunftsorientierte Anwendung konzentriert sich auf die high-level-Methoden und erweitert weitere Anforderungen mit virtuellen Terminalsequenzen durch die high-level I/O-Methoden, wenn nötig, um die Verwendung von I/O-Funktionen auf niedriger Ebene vollständig zu vermeiden.

In den folgenden Themen werden die Konsolenmodi und die High-Level- und Low-Level-E/A-Funktionen beschrieben.