Indata- och utdatametoder

Det finns två olika metoder för konsol-I/O, vars val beror på hur mycket flexibilitet och kontroll ett program behöver. Metoden på hög nivå möjliggör enkel teckenströms-I/O, men begränsar åtkomsten till en konsols indata - och skärmbuffertar . Metoden på låg nivå kräver att utvecklare skriver mer kod och väljer bland ett större utbud av funktioner, men det ger också ett program större flexibilitet.

Anmärkning

Lågnivåmetoden rekommenderas inte för ny och pågående utveckling. Program som behöver funktioner från den lågnivåkonsolens I/O-funktioner uppmuntras att använda virtuella terminalsekvenser och utforska vår dokumentation om både klassiska funktioner jämfört med virtuell terminal och ekosystemöversikten.

Ett program kan använda fil-I/O-funktionerna , ReadFile och WriteFile samt konsolfunktionerna ReadConsole och WriteConsole för högnivå-I/O som ger indirekt åtkomst till en konsols indata- och skärmbuffertar. Indatafunktionerna på hög nivå filtrerar och bearbetar data i en konsols indatabuffert för att returnera indata som en ström av tecken, och tar bort mus- och buffertändringsindata. På samma sätt skriver högnivåutdatafunktionerna en ström med tecken som visas på den aktuella markörens plats i en skärmbuffert. Ett program styr hur dessa funktioner fungerar genom att ange en konsols I/O-lägen.

I/O-funktionerna på låg nivå ger direkt åtkomst till en konsols indata- och skärmbuffertar, vilket gör det möjligt för ett program att komma åt mus- och buffertändringshändelser och utökad information för tangentbordshändelser. Med lågnivåutdatafunktioner kan ett program läsa från eller skriva till ett angivet antal teckenceller i följd i en skärmbuffert, eller läsa eller skriva till rektangulära block av teckenceller på en angiven plats i en skärmbuffert. En konsols indatalägen påverkar lågnivåindata genom att göra det möjligt för programmet att avgöra om mus- och buffertändringshändelser placeras i indatabufferten. En konsols utdatalägen har ingen effekt på lågnivåutdata.

I/O-metoderna på hög nivå och låg nivå utesluter inte varandra, och ett program kan använda valfri kombination av dessa funktioner. Normalt använder dock ett program den ena metoden eller den andra uteslutande och vi rekommenderar att du fokuserar på ett visst paradigm för optimala resultat.

Tips/Råd

Det idealiska framåtblickande programmet fokuserar på högnivåmetoderna och utökar ytterligare behov med virtuella terminalsekvenser via I/O-metoderna på hög nivå när det behövs för att undvika användning av I/O-funktioner på låg nivå helt.

Följande avsnitt beskriver konsollägena och I/O-funktionerna på hög nivå och låg nivå.