Share via


Metodi di input e output

Esistono due approcci diversi all'I/O della console, la scelta di cui dipende dalla flessibilità e dal controllo di un'applicazione. L'approccio generale consente l'I/O di flusso di caratteri semplice, ma limita l'accesso ai buffer di input e schermo di una console. L'approccio di basso livello richiede che gli sviluppatori scrivono più codice e scelgano tra una gamma maggiore di funzioni, ma offre anche una maggiore flessibilità per l'applicazione.

Nota

L'approccio di basso livello non è consigliato per lo sviluppo nuovo e in corso. Le applicazioni che necessitano di funzionalità dalle funzioni di I/O della console di basso livello sono incoraggiate a usare sequenze di terminale virtuale ed esplorare la documentazione sia sulle funzioni classiche che sul terminale virtuale e sulla roadmap dell'ecosistema.

Un'applicazione può usare le funzioni di I/O del file, ReadFile e WriteFile e le funzioni della console, ReadConsole e WriteConsole, per operazioni di I/O di alto livello che forniscono l'accesso indiretto ai buffer di input e schermo di una console. Le funzioni di input di alto livello filtrano ed elaborano i dati nel buffer di input di una console per restituire l'input come flusso di caratteri, ignorando l'input del mouse e il ridimensionamento del buffer. Analogamente, le funzioni di output di alto livello scrivono un flusso di caratteri visualizzati nella posizione corrente del cursore in un buffer dello schermo. Un'applicazione controlla il funzionamento di queste funzioni impostando le modalità di I/O di una console.

Le funzioni di I/O di basso livello forniscono accesso diretto ai buffer di input e schermo di una console, consentendo a un'applicazione di accedere agli eventi di input del mouse e di ridimensionamento del buffer e alle informazioni estese per gli eventi della tastiera. Le funzioni di output di basso livello consentono a un'applicazione di leggere o scrivere in un numero specificato di celle di caratteri consecutive in un buffer dello schermo o di leggere o scrivere in blocchi rettangolari di celle di caratteri in una posizione specificata in un buffer dello schermo. Le modalità di input di una console influiscono sull'input di basso livello consentendo all'applicazione di determinare se gli eventi di ridimensionamento del mouse e buffer vengono inseriti nel buffer di input. Le modalità di output di una console non hanno alcun effetto sull'output di basso livello.

I metodi di I/O di alto livello e di basso livello non si escludono a vicenda e un'applicazione può usare qualsiasi combinazione di queste funzioni. In genere, tuttavia, un'applicazione usa un approccio o l'altro esclusivamente e si consiglia di concentrarsi su un particolare paradigma per ottenere risultati ottimali.

Suggerimento

L'applicazione ideale per il futuro si concentrerà sui metodi di alto livello e aumentare ulteriormente le esigenze con sequenze di terminale virtuale attraverso i metodi di I/O di alto livello quando necessario evitando l'uso di funzioni di I/O di basso livello interamente.

Negli argomenti seguenti vengono descritte le modalità console e le funzioni di I/O di alto livello e di basso livello.