Erstmal zu den Grundlagen:
Konsolen werden über Pipes gesteuert und davon gibt es drei Stück
Standard input (
Input)
Standard output (
Output)
Standard error output (
ErrOutput)
Output wird standardmäßig verwendet, wenn man Write, WriteLn und Co. benutzt
und Input bei ReadLn, Read usw.
Man kann natürlich auch direkt die genannten Funktionen oder File-Variablen benutzen, oder alles andere, was mit Dateien/Dateihandles arbeiten kann.
Zusätzlich könnte man zwar auch noch alles andere verwenden, wie z.B. spezielle Consolen-Komponenten oder GetAsyncKeyState usw.