Home C&C++函数库 c++ 语法 程序源码 Linux C库

<cstdio>

头文件   (stdio.h)

执行输入/输出操作的C库
输入和输出操作也可以在c++中使用C标准输入和输出库(cstdio,在C语言中称为stdio.h)执行。 这个库使用流来操作物理设备,如键盘、打印机、终端或系统支持的任何其他类型的文件。 流是一种以统一方式与它们交互的抽象;所有流都具有类似的属性,独立于它们所关联的物理媒体的单个特性。

流在cstdio库中被作为指向文件对象的指针进行处理。指向FILE对象的指针唯一地标识一个流, 并在涉及该流的操作中用作参数。

有三个标准流:stdinstdoutstderr,它们会自动创建并为使用库的所有程序打开。

☞  Streams属性



Streams有一些属性,这些属性定义了可以对它们使用哪些函数以及它们将如何处理通过它们输入或输出的数据。 大多数这些属性是在使用fopen函数将流与文件(打开)关联时定义的.

Read/Write 访问

指定流是否具有对与其关联的物理媒体的读或写访问权限(或两者).

文本 / 二进制

文本流被认为代表一组文本行,每一行以换行符结尾。
根据应用程序运行的环境,文本流可能会发生一些字符转换, 以使某些特殊字符适应环境的文本文件规范。
另一方面,二进制流是从物理媒体写入或读取的字符序列,不需要转换, 与读或写到流的字符有一一对应关系。

缓冲区
缓冲区是一块内存,数据在被物理读取或写入相关文件或设备之前暂存在其中。
流可以是完全缓冲的、行缓冲的或无缓冲的。
在完全缓冲的流上,当缓冲区被填满时读取/写入数据,在行缓冲流上,当遇到换行符时会读取/写入数据,
而在未缓冲的流上,字符即时读取/写入.

定位
在打开时,流是不确定的。
一旦对它们执行输入/输出操作,它们就变成面向单字节的或面向多字节的, 这取决于所执行的操作.
(通常,在<cstdio> 中定义的函数是面向单字节的, 而在<cwchar> 中定义的函数是面向多字节的)更多信息请参见cwchar

☞  标志



流具有特定的内部指示器来指定它们的当前状态,并影响对其执行的一些输入和输出操作的行为:

错误指示器

当与流相关的操作发生错误时设置此指示器。
这个指示器可以用ferror函数来检查, 也可以通过调用clearerrfreopenrewind来重置。

文件结束指示器

当设置此标志时,表示对流执行的读或写操作到达文件结束位置。
它可以用feof函数检查, 也可以通过调用clearerrfreopen或调用任何重新定位函数 (rewind, fseekfsetpos)来重置。

位置指示器
它是流的内部指针,指向下一次I/O操作中要读或写的下一个字符。
它的值可以通过ftellfgetpos函数获得, 也可以通过重新定位函数rewind, fseekfsetpos来改变。

☞  函数



文件操作:
remove 删除文件 (function )
rename 重命名文件(function )
tmpfile 打开一个临时文件(function )
tmpnam 生成临时文件名(function )


文件访问:
fclose 关闭文件(function )
fflush 刷新流 (function )
fopen 打开文件(function )
freopen 使用不同的文件或模式重新打开流(function )
setbuf 设置流缓冲区 (function )
setvbuf 更改流缓冲区 (function )


格式化输入/输出
fscanf 从流中读取格式化数据 (function )
fprintf 将格式化数据写入流(function )
printf 将格式化数据打印到标准输出(function )
scanf 从标准输入读取格式化数据(function )
snprintf 将格式化输出写入指定规格的缓冲区(function )
sprintf 将格式化数据写入字符串(function )
sscanf 从字符串中读取格式化数据(function )
vfprintf 使用参数列表发送格式化数据输出到流中(function )
vfscanf 从流中读取格式化数据到变量参数列表(function )
vprintf 将格式化数据从变量参数列表打印到标准输出(function )
vscanf 将格式化数据读入可变参数列表(function )
vsnprintf 将格式化数据从可变参数列表写入指定规格的缓冲(function )
vsprintf 将变量参数列表中的格式化数据写入字符串(function )
vsscanf 从字符串中读取格式化数据到变量参数列表(function )


字符输入/输出:
fgetc 从流中获取字符 (function )
fgets 从流中获取字符串(function )
fputc 将字符写入流(function )
fputs 将字符串写入流(function )
getc 从流中获取字符(function )
getchar 从标准输入获取字符(function )
gets 从标准输入获取字符串(function )
putc 将字符写入流(function )
putchar 将字符写入标准输出(function )
puts 将字符串写入标准输出(function )
ungetc 取消从流中获取字符(function )


块输入/输出:
fread 从流中读取数据块(function )
fwrite 将数据块写入流(function )


文件定位:
fgetpos 获取流中的当前位置(function )
fseek 重新定位流位置标志器(function )
fsetpos 设置流位置标志器(function )
ftell 获取流中的当前位置(function )
rewind 将流的位置设置为开头(function )


错误处理:
clearerr 清除错误标志器(function )
feof 检查文件结束标志符(function )
ferror 检查错误标志器(function )
perror 打印错误信息(function )


☞  宏



BUFSIZ 缓冲区大小 (constant )
EOF 文件尾 (constant )
FILENAME_MAX 文件名的最大长度 (constant )
FOPEN_MAX 同时打开流的潜在限制 (constant )
L_tmpnam 临时文件名的最小长度 (constant )
NULL 空指针 (macro )
TMP_MAX 临时文件数 (constant )

另: _IOFBF, _IOLBF, _IONBF (用来设置setvbuf)
SEEK_CUR, SEEK_END 以及 SEEK_SET (用来设置fseek)

☣  类型



FILE 包含控制流的信息的对象(type)
fpos_t 包含用于指定文件中位置的信息的对象(type)
size_t 无符号整数类型(type)

☣  对象(object)



stdin 标准输入流(object )
stdout 标准输出流(object )
stderr 标准错误流(object )

联系我们 免责声明 关于CandCplus 网站地图