C-style file input/output
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
CI / O的C + +标准库的子集实现C-风格的流输入/输出操作。
<cstdio>
头提供了通用的文件操作狭窄和多字节字符的输入/输出功能,支持和供应职能和<cwchar>
头提供的功能与宽字符输入/输出功能. 原文:
The C I/O subset of the C++ standard library implements C-style stream input/output operations. The
<cstdio>
header provides generic file operation support and supplies functions with narrow and multibyte character input/output capabilities, and the <cwchar>
header provides functions with wide character input/output capabilities. Ç流std::FILE类型的对象只能访问和操纵通过指针的类型std::FILE*(注:有可能创建一个本地对象类型std::FILE有效的FILE*提领和复制,使用该副本的地址I / O功能是未定义的行为)。每个C流与外部物理设备(文件,标准输入流,打印机,串行端口等).
原文:
C streams are objects of type std::FILE that can only be accessed and manipulated through pointers of type std::FILE* (Note: while it may be possible to create a local object of type std::FILE by dereferencing and copying a valid FILE*, using the address of such copy in the I/O functions is undefined behavior). Each C stream is associated with an external physical device (file, standard input stream, printer, serial port, etc).
Ç流可以被用于两个未格式化和格式化的输入和输出。他们是语言环境敏感的,必要时可进行宽/多字节转换。与C + +流,每个流与自己的地区,所有的C流访问相同的区域对象:一个最近安装的std::setlocale.
原文:
C streams can be used for both unformatted and formatted input and output. They are locale-sensitive and may perform wide/multibyte conversions as necessary. Unlike C++ streams, where each stream is associated with its own locale, all C streams access the same locale object: the one most recently installed with std::setlocale.
除了特定的信息系统需要访问的设备(如POSIX文件描述符),每一个C的流对象持有以下
原文:
Besides the system-specific information necessary to access the device (e.g. a POSIX file descriptor), each C stream object holds the following:
1)
字符宽度:窄或宽的
2)
缓冲状态:无缓冲,行缓冲,全缓冲.
原文:
Buffering state: unbuffered, line-buffered, fully buffered.
3)
的缓冲液,其中可被一个外部的,用户提供缓冲区.
原文:
The buffer, which may be replaced by an external, user-provided buffer.
4)
I / O模式:输入,输出,或更新(包括输入和输出).
原文:
I/O mode: input, output, or update (both input and output).
5)
二进制/文本模式指示灯.
6)
文件的状态指示灯.
7)
错误状态指示灯.
8)
文件位置指示器(一个对象类型std::fpos_t),,,宽字符流的解析状态,包括(类型的对象mbstate_t)
原文:
File position indicator (an object of type std::fpos_t), which, for wide character streams, includes the parse state (an object of type mbstate_t).
[编辑] 功能
| |
打开一个文件 (函数) | |
打开一个现有的流用不同的名称 原文: open an existing stream with a different name (函数) | |
关闭一个文件 (函数) | |
实际的文件同步输出流 原文: synchronizes an output stream with the actual file (函数) | |
宽字符I / O和窄字符之间切换文件流I / O 原文: switches a file stream between wide character I/O and narrow character I/O (函数) | |
设置文件流的缓冲区 (函数) | |
设置文件流的缓冲区,其大小 原文: sets the buffer and its size for a file stream (函数) | |
| |
从文件读取 (函数) | |
写入到一个文件中 (函数) | |
| |
| |
从文件流中获取一个字符 (函数) | |
得到一个字符串从一个文件流 原文: gets a character string from a file stream (函数) | |
将一个字符写入一个文件流 (函数) | |
将一个字符串写入一个文件流 原文: writes a character string to a file stream (函数) | |
从stdin中读取一个字符 (函数) | |
从stdin读取一个字符的字符串 (函数) | |
将一个字符写入stdout (函数) | |
写一个字符串stdout 原文: writes a character string to stdout (函数) | |
把一个字符到一个文件流 原文: puts a character back into a file stream (函数) | |
| |
得到一个宽字符的文件流 原文: gets a wide character from a file stream (函数) | |
获取宽字符串从文件流 原文: gets a wide string from a file stream (函数) | |
一个宽字符写入一个文件流 原文: writes a wide character to a file stream (函数) | |
宽字符串写入一个文件流 原文: writes a wide string to a file stream (函数) | |
读取一个字符stdin (函数) | |
写一个宽字符stdout (函数) | |
把一个宽字符到一个文件流 原文: puts a wide character back into a file stream (函数) | |
| |
| |
stdin,文件流或缓冲区的读取格式的输入 原文: reads formatted input from stdin, a file stream or a buffer (函数) | |
(C++11) (C++11) (C++11) |
stdin,一个文件流或buffer 使用可变参数列表的读取格式的输入 原文: reads formatted input from stdin, a file stream or a buffer using variable argument list (函数) |
(C++11) |
打印格式化输出到stdout,文件流或缓冲区 原文: prints formatted output to stdout, a file stream or a buffer (函数) |
打印格式化的输出stdout,一个文件流或buffer 使用可变参数列表 原文: prints formatted output to stdout, a file stream or a buffer using variable argument list (函数) | |
| |
stdin,文件流或缓冲区读取格式的宽字符输入 原文: reads formatted wide character input from stdin, a file stream or a buffer (函数) | |
(C++11) (C++11) (C++11) |
stdin,的文件stream 或使用可变参数列表的缓冲区读取格式的宽字符输入 原文: reads formatted wide character input from stdin, a file stream or a buffer using variable argument list (函数) |
打印格式化宽字符输出到stdout,文件流或缓冲区 原文: prints formatted wide character output to stdout, a file stream or a buffer (函数) | |
打印格式化宽字符输出到stdout,的文件stream 或使用可变参数列表的缓冲区 原文: prints formatted wide character output to stdout, a file stream or a buffer using variable argument list (函数) | |
| |
返回当前的文件指针位置 原文: returns the current file position indicator (函数) | |
获取文件位置指示器 (函数) | |
在一个文件中的文件位置指示符移动到特定的位置 原文: moves the file position indicator to a specific location in a file (函数) | |
在一个文件中的文件位置指示符移动到特定的位置 原文: moves the file position indicator to a specific location in a file (函数) | |
移动的文件,在一个文件中的开始位置指示器 原文: moves the file position indicator to the beginning in a file (函数) | |
| |
清除错误 (函数) | |
检查文件结束 (函数) | |
检查文件错误 (函数) | |
显示一个字符串相应的电流误差stderr 原文: displays a character string corresponding of the current error to stderr (函数) | |
| |
删除一个文件 (函数) | |
重命名文件 (函数) | |
创建并打开一个临时的,自动删除文件 原文: creates and opens a temporary, auto-removing file (函数) | |
返回一个唯一的文件名 (函数) |
[编辑] 类型
在头文件
<cstdio> 中定义 | |
类型
|
Definition |
FILE | 类型,能够保持一个CI / O流控制所需的所有信息
原文: type, capable of holding all information needed to control a C I/O stream |
fpos_t | 的类型,能够唯一地指定在一个文件中的位置
原文: type, capable of uniquely specifying a position in a file |
[编辑] 宏
在头文件
<cstdio> 中定义 | |
stdin stdout stderr |
表达的类型FILE*与 与错误输出流的类型的输出streamFILE*expression的类型 的的输入streamFILE*expression的 原文: expression of type FILE* associated with the input stream expression of type FILE* associated with the output stream expression of type FILE* associated with the error output stream (常量宏) |
EOF |
整型常量表达式的类型int和负价值 原文: integer constant expression of type int and negative value (常量宏) |
FOPEN_MAX |
可以同时打开的文件数 原文: number of files that can be open simultaneously (常量宏) |
FILENAME_MAX |
大小需要的为char数组以保存最长的支持文件名 原文: size needed for an array of char to hold the longest supported file name (常量宏) |
BUFSIZ |
std::setbuf所用的缓冲区的大小 原文: size of the buffer used by std::setbuf (常量宏) |
_IOFBF _IOLBF _IONBF |
到std::setbuf的参数,表示完全缓冲的I /O argumentstd::setbuf指示线表示非缓冲I / O缓冲的I /O argumentstd::setbuf 原文: argument to std::setbuf indicating fully buffered I/O argument to std::setbuf indicating line buffered I/O argument to std::setbuf indicating unbuffered I/O (常量宏) |
SEEK_SET SEEK_CUR SEEK_END |
参数为std::fseek表明寻求从开始的file argumentstd::fseek 寻求从文件末尾寻求从当前文件positionstd::fseekargument的 原文: argument to std::fseek indicating seeking from beginning of the file argument to std::fseek indicating seeking from the current file position argument to std::fseek indicating seeking from end of the file (常量宏) |
TMP_MAX |
唯一的文件名,可以产生std::tmpnam最大数目 原文: maximum number of unique filenames that can be generated by std::tmpnam (常量宏) |
L_tmpnam |
大小需要一个char数组来保存结果的std::tmpnam 原文: size needed for an array of char to hold the result of std::tmpnam (常量宏) |