共用方式為


資料流 I/O

這些函式處理不同的大小和格式,從大型資料結構的單一字元的資料。 它們也提供緩衝處理,可以改善效能。 資料流緩衝區的預設大小為 4k。 這些常式會影響執行階段程式庫常式中,所建立的緩衝區,而且不會影響作業系統所建立的緩衝區大小。

資料流 I/O 常式

常式

使用

.NET Framework 的對等用法

clearerrclearerr_s

清除錯誤資料流的指標

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

fclose

關閉資料流

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

_fcloseall

關閉所有開啟的資料流,除非stdin, stdout,並stderr

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

_fdopen wfdopen

資料流關聯的開啟檔案的檔案描述項

System::IO::FileStream::FileStream

feof

測試資料流上的檔案結尾

System::IO::FileStream::Read

ferror

測試資料流時發生錯誤

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

fflush

清除資料流緩衝區或存放裝置

System::IO::FileStream::Flush

fgetc fgetwc

從資料流讀取字元 (函式版本的getc和getwc)

System::IO::StreamReader::Read

_fgetchar _fgetwchar

讀取字元 ; stdin (函式版本的getchar和getwchar)

System::Console::Read

fgetpos

取得資料流的位置指示器

System::IO::FileStream::Position

fgets fgetws

從資料流讀取字串

System::IO::StreamReader::ReadLineSystem::IO::TextReader::ReadBlock

_fileno

取得資料流相關聯的檔案描述項

System::IO::FileStream::Handle

_flushall

清除所有的資料流緩衝區或存放裝置

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

fopen,_wfopenfopen_s _wfopen_s

開啟資料流

System::IO::File::Open

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

已格式化的資料寫入資料流

System::IO::StreamWriter::Write

fputc fputwc

寫入資料流中的字元 (函式版本的putc和putwc)

System::IO::StreamWriter::Write

_fputchar _fputwchar

撰寫字元stdout (函式版本的putchar和putwchar)

System::Console::Write

fputs fputws

寫入資料流的字串

System::IO::StreamWriter::Write

fread

從資料流讀取未格式化的資料

System::IO::FileStream::Read

freopen,_wfreopenfreopen_s _wfreopen_s

重新指派FILE到新的檔案或裝置的資料流指標

System::IO::File::Open

fscanf,fwscanffscanf_s、 _fscanf_s_l、 fwscanf_s、 _fwscanf_s_l

讀取的格式從資料流的資料

System::IO::StreamReader::ReadLine。 請參閱Parse方法,例如 System::Double::Parse

fseek _fseeki64

移動檔案位置,以指定的位置

System::IO::FileStream::PositionSystem::IO::FileStream:: 搜尋

fsetpos

資料流的集中位置指示器

System::IO::FileStream::Position

_fsopen _wfsopen

開啟資料流,具有檔案共用

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

ftell _ftelli64

取得目前的檔案位置

System::IO::FileStream::Position

fwrite

寫入資料流處理的項目未格式化的資料

System::IO::FileStream::Write

getc getwc

從資料流讀取字元 (巨集版本的fgetc和fgetwc)

System::IO::StreamReader::Read

getchar getwchar

讀取字元 ; stdin (巨集版本的fgetchar和fgetwchar)

System::Console::Read

_getmaxstdio

傳回同時開啟的檔案,在資料流 I/O 層級數目。

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

取得,getwsgets_s _getws_s

讀取一行stdin

System::Console::Read

_getw

讀取二進位檔int從資料流

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

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

寫入至格式化的資料stdout

System::Console::Write

putc putwc

寫入資料流中的字元 (巨集版本的fputc和fputwc)

System::IO::StreamWriter::Write

putchar putwchar

撰寫字元stdout (巨集版本的fputchar和fputwchar)

System::Console::Write

會將 _putws

寫入資料流中的行

System::Console::Write

_putw

寫入二進位檔int寫入資料流

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

倒帶

移至資料流的開頭的 [檔案位置

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

_rmtmp

移除所建立的暫存檔案tmpfile

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

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

讀取格式的資料stdin

System::Console::ReadLine。 請參閱Parse方法,例如 System::Double::Parse

setbuf

控制資料流緩衝

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

_setmaxstdio

在資料流 I/O 的同時開啟的檔案數目的最大值設定層級。

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

setvbuf

控制資料流緩衝處理] 與 [緩衝區大小

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

_snprintf,_snwprintf_snprintf_s、 _snprintf_s_l、 _snwprintf_s、 _snwprintf_s_l

格式化的指定長度的資料寫入字串

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

_snscanf,_snwscanf_snscanf_s、 _snscanf_s_l、 _snwscanf_s、 _snwscanf_s_l

讀取的格式從標準輸入資料流的指定長度的資料。

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

sprintf,swprintfsprintf_s、 _sprintf_s_l、 swprintf_s、 _swprintf_s_l

已格式化的資料寫入字串

System::String::Format

sscanf,swscanfsscanf_s、 _sscanf_s_l、 swscanf_s、 _swscanf_s_l

讀取的格式字串中的資料

請參閱Parse方法,例如 System::Double::Parse

_tempnam _wtempnam

產生暫時的檔名中指定的目錄

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

tmpfiletmpfile_s

建立暫存檔

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

tmpnam,_wtmpnamtmpnam_s _wtmpnam_s

產生暫時的檔名

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

ungetc ungetwc

上一步推入資料流的字元

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

_vcprintf,_vcwprintf_vcprintf_s、 _vcprintf_s_l、 _vcwprintf_s、 _vcwprintf_s_l

已格式化的資料寫入主控台。

System::Console::Write

vfprintf,vfwprintfvfprintf_s、 _vfprintf_s_l、 vfwprintf_s、 _vfwprintf_s_l

已格式化的資料寫入資料流

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

vprintf,vwprintfvprintf_s、 _vprintf_s_l、 vwprintf_s、 _vwprintf_s_l

寫入至格式化的資料stdout

System::Console::Write

_vsnprintf,_vsnwprintfvsnprintf_s、 _vsnprintf_s、 _vsnprintf_s_l、 _vsnwprintf_s、 _vsnwprintf_s_l

寫入緩衝區的指定長度的格式化的資料

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

vsprintf,vswprintfvsprintf_s、 _vsprintf_s_l、 vswprintf_s、 _vswprintf_s_l

寫入緩衝區的格式化的資料

System::String::Format

當程式開始執行時,啟始程式碼就會自動開啟數個資料流: 標準輸入 (由stdin),標準輸出 (所指stdout),和標準錯誤 (所指stderr)。 根據預設,這些資料流會導向至主控台 (鍵盤及螢幕)。 使用freopen重新導向stdin, stdout,或stderr磁碟檔案或裝置。

使用資料流常式所開啟的檔案會依預設緩衝。 stdout和stderr函式會排清,每次都填滿或,如果您正在寫信給視訊文字裝置,每個程式庫呼叫之後。 如果程式不正常終止,輸出緩衝區可能不會清除,因而導致資料遺失。 使用fflush或_flushall以確保指定的檔案相關聯的緩衝區或所有開啟的緩衝區被清除到作業系統,可以先寫入磁碟快取資料。 認可到磁碟] 功能可確保排清的緩衝區內容不會遺失在系統失敗的事件。

有兩種方式可以認可到磁碟的緩衝區內容:

  • 請使用 COMMODE 的檔案連結。若要設定全域認可旗標的物件。 全域旗標的預設值是n,如"否-認可"

  • Set the mode flag to c with fopen or _fdopen.

尤其是開啟中的任何檔案,選擇c或n旗標的行為就根據至旗標,無論全域認可/否認可旗標的狀態。

如果您的程式未明確關閉資料流,當程式結束時自動關閉資料流。 不過,請先關閉資料流時您的程式結束,因為可以一次開啟的資料流數量是有限。 請參閱 _setmaxstdio 如需這項限制。

輸入可以依照下列的輸出直接只有中間呼叫fflush或檔案位置的函式 (fseek, fsetpos,或rewind)。 輸出可以依照輸入而不需介入呼叫的檔案位置的函式,如果輸入的作業遇到檔案結尾。

請參閱

參考

輸入和輸出

依類別的執行階段常式