Condividi tramite


I/O di flusso

Questi dati di processo di funzioni in diverse dimensioni e formati, da singoli caratteri a strutture dati di grandi dimensioni. Forniscono inoltre il buffering, migliorando le prestazioni. La dimensione predefinita di un buffer del flusso è 4K. Queste routine hanno effetto solo sui buffer creati dalle routine di libreria di runtime e non hanno effetto su buffer creati dal sistema operativo.

Routine di flussi I/O

Routine

Utilizzo

Equivalente .NET Framework

clearerr, clearerr_s

Eliminare l'indicatore di errore per il flusso

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

fclose

Chiudere il flusso

System::IO::Stream::Close, System::IO::BinaryReader::Close, System::IO::BinaryWriter::Close, System::IO::TextReader::Close, System::IO::TextWriter::Close, System::IO::StringReader::Close, System::IO::StringWriter::Close, System::IO::StreamReader::Close, System::IO::StreamWriter::Close

_fcloseall

Chiudere tutti i flussi aperti tranne stdin, stdout e stderr

System::IO::Stream::Close, System::IO::BinaryReader::Close, System::IO::BinaryWriter::Close, System::IO::TextReader::Close, System::IO::TextWriter::Close, System::IO::StringReader::Close, System::IO::StringWriter::Close, System::IO::StreamReader::Close, System::IO::StreamWriter::Close

_fdopen, wfdopen

Associare il flusso con il descrittore del file aperto

System::IO::FileStream::FileStream

feof

Verifica della fine del file sul flusso

System::IO::FileStream::Read

ferror

Verifica degli errore nel flusso

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

fflush

Eliminare il flusso dal buffer o dal dispositivo di archiviazione

System::IO::FileStream::Flush

fgetc, fgetwc

Leggere i caratteri dal flusso (versioni di funzione di getc e di getwc)

System::IO::StreamReader::Read

_fgetchar, _fgetwchar

Leggere caratteri da stdin (versioni di funzione di getchar e di getwchar)

System::Console::Read

fgetpos

Ottenere l'indicatore di posizione del flusso

System::IO::FileStream::Position

fgets, fgetws

Leggere una stringa dal flusso

System::IO::StreamReader::ReadLine, System::IO::TextReader::ReadBlock

_fileno

Ottenere il descrittore di file associato al flusso

System::IO::FileStream::Handle

_flushall

Svuotare tutti i flussi dal buffer o dal dispositivo di archiviazione

System::IO::FileStream::Flush, System::IO::StreamWriter::Flush, System::IO::TextWriter::Flush, System::IO::BinaryWriter::Flush

fopen, _wfopen, fopen_s, _wfopen_s

Aprire il flusso

System::IO::File::Open

fprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l

Scrivere dati formattati in un flusso

System::IO::StreamWriter::Write

fputc, fputwc

Scrivere un carattere in un flusso (versioni di funzione di putc e di putwc)

System::IO::StreamWriter::Write

_fputchar, _fputwchar

Scrivere il carattere sullo stdout (versioni di funzione di putchar e di putwchar)

System::Console::Write

fputs, fputws

Scrivere una stringa nel flusso

System::IO::StreamWriter::Write

fread

Leggere dati non formattati da un flusso.

System::IO::FileStream::Read

freopen, _wfreopen, freopen_s, _wfreopen_s

Riposizionare il puntatore del flusso FILE al nuovo file o dispositivo

System::IO::File::Open

fscanf, fwscanf, fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l

Leggere dati formattati da un flusso

System::IO::StreamReader::ReadLine; vedere anche i metodi di Parse, come System::Double::Parse.

fseek, _fseeki64

Spostare la posizione del file nel percorso specificato

System::IO::FileStream::Position, System::IO::FileStream::Seek

fsetpos

Impostare l'indicatore di posizione del flusso

System::IO::FileStream::Position

_fsopen, _wfsopen

Aprire il flusso con condivisione di file

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

ftell, _ftelli64

Ottenere la posizione corrente del file

System::IO::FileStream::Position

fwrite

Scrivere gli elementi di dati non formattati nel flusso

System::IO::FileStream::Write

getc, getwc

Leggere i caratteri dal flusso (versioni di macro di fgetc e di fgetwc)

System::IO::StreamReader::Read

getchar, getwchar

Leggere caratteri da stdin (versioni di macro di fgetchar e di fgetwchar)

System::Console::Read

_getmaxstdio

Restituisce il numero dei file aperti contemporaneamente permesso a livello del flusso I/O.

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

gets, _getws, gets_s, _getws_s

Leggere una riga dallo stdin

System::Console::Read

_getw

Leggere int binari da un flusso

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

printf, _printf_l, wprintf, _wprintf_l,printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

Scrivere dati formattati nello stdout

System::Console::Write

putc, putwc

Scrivere un carattere in un flusso (versioni macro di fputc e di fputwc)

System::IO::StreamWriter::Write

putchar, putwchar

Scrivere un carattere sullo stdout (versioni di macro di fputchar e di fputwchar)

System::Console::Write

puts, _putws

Scrivere una riga nel flusso

System::Console::Write

_putw

Scrivere int binari in un flusso

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

riavvolgi

Spostare la posizione del file all'inizio di un flusso

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

_rmtmp

Rimuovere i file temporanei creati da tmpfile

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

scanf, _scanf_l, wscanf, _wscanf_l,scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

Leggere dati formattati dallo stdin

System::Console::ReadLine; vedere anche i metodi di Parse, come System::Double::Parse.

setbuf

Controllare il buffering del flusso

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

_setmaxstdio

Impostare un massimo per il numero dei file aperti contemporaneamente al livello del flusso I/O.

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

setvbuf

Controllare il buffering del flusso e la dimensione del buffer

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

_snprintf, _snwprintf, _snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

Scrivere dati formattati di lunghezza specificata in una stringa

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

_snscanf, _snwscanf, _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

Legge i dati formattati di lunghezza specificata dal flusso dello standard input

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

sprintf, swprintf, sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l

Scrivere dati formattati in una stringa

System::String::Format

sscanf, swscanf, sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l

Leggere dati formattati da una stringa

Vedere i metodi Parse, come System::Double::Parse

_tempnam, _wtempnam

Creare il filename temporaneo nella directory specificata

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

tmpfile, tmpfile_s

Creare un file temporaneo

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

tmpnam, _wtmpnam, tmpnam_s, _wtmpnam_s

Creare un filename temporaneo

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

ungetc, ungetwc

Inserire caratteri in coda al flusso

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l

Scrivere dati formattati alla console.

System::Console::Write

vfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l

Scrivere dati formattati in un flusso

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

vprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l

Scrivere dati formattati nello stdout

System::Console::Write

_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

Scrivere dati formattati di lunghezza specificata in un buffer

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

vsprintf, vswprintf, vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l

Scrivere dati formattati in un buffer

System::String::Format

Quando un programma inizia l'esecuzione, il codice di avvio automatico apre più flussi: standard input (puntato da stdin), standard output (puntato da stdout) e standard error (puntato da stderr). I flussi vengono indirizzati alla console (tastiera e schermo) per impostazione predefinita. Utilizzare freopen per reindirizzare stdin, stdout, o stderr a un file su disco o a un dispositivo.

I file aperti mediante le routine del flusso vengono memorizzati nel buffer per impostazione predefinita. Le funzioni di stderr e di stdout vengono scaricate e memorizzate ogni volta che vengono completate o, se si sta scrivendo su un dispositivo a caratteri, dopo ogni chiamata della libreria. Se un programma termina in modo anomalo, i buffer di output non possono essere scaricati, con conseguente perdita di dati. Utilizzare fflush o _flushall per assicurarsi che il buffer associato a un file specificato o tutti i buffer aperti siano scaricati al sistema operativo, che può memorizzare nella cache i dati prima di scrittura sul disco. La funzionalità di commit a disco garantisce che il contenuto del buffer scaricato non vada perduto nel caso di un errore di sistema.

Esistono due modi per eseguire il commit del contenuto del buffer su disco:

  • Collegamento al file COMMODE.OBJ per impostare un flag globale di commit. L'impostazione predefinita del flag globale è n, per "no-commit."

  • Impostare il flag di modalità a c con fopen o _fdopen.

Qualsiasi file specificatamente aperto con il flag c o n si comporta in base al flag, indipendentemente dallo stato del flag globale di commit/no-commit.

Se il programma in modo esplicito non chiude un flusso, il flusso viene automaticamente chiuso quando il programma termina. Tuttavia, è necessario chiudere un flusso quando il programma termina con esso, perché il numero dei flussi che possono essere aperti contemporaneamente sono limitati. Vedere _setmaxstdio per informazioni su questo limite.

L'input può utilizzare direttamente l'output solo con una chiamata corrispondente a fflush o a una funzione di posizionamento di file (fseek, fsetpos, o rewind). L'output può seguire l'input senza una corrispondente chiamata a una funzione di posizionamento dei file se l'operazione di input rileva la fine del file.

Vedere anche

Riferimenti

Input e output

Routine di runtime per categoria