C /C++标准库 - <cstdio>(stdio.h)

来源:互联网 发布:mac照片在哪里找到 编辑:程序博客网 时间:2024/06/09 23:58

C 标准库 -

1. 库变量

序号 变量 描述 1 size_t 这是无符号整数类型,它是 sizeof 关键字的结果。 2 FILE 这是一个适合存储文件流信息的对象类型。 3 fpos_t 这是一个适合存储文件中任何位置的对象类型。

2. 宏定义

下面是头文件 stdio.h 中定义的宏:

序号 宏 描述 1 NULL 这个宏是一个空指针常量的值 2 _IOFBF、_IOLBF 和 _IONBF 这些宏扩展了带有特定值的整型常量表达式,并适用于 setvbuf 函数的第三个参数。 3 BUFSIZ 这个宏是一个整数,该整数代表了 setbuf 函数使用的缓冲区大小。 4 EOF End-of-File 5 FOPEN_MAX 这个宏是一个整数,该整数代表了系统可以同时打开的文件数量。 6 FILENAME_MAX 这个宏是一个整数,该整数代表了字符数组可以存储的文件名的最大长度。如果实现没有任何限制,则该值应为推荐的最大值。 7 L_tmpnam 这个宏是一个整数,该整数代表了字符数组可以存储的由 tmpnam 函数创建的临时文件名的最大长度。 8 SEEK_CUR、SEEK_END 和 SEEK_SET 这些宏是在These macros are used in the fseek 函数中使用,用于在一个文件中定位不同的位置。 9 TMP_MAX 这个宏是 tmpnam 函数可生成的独特文件名的最大数量。 10 stderr、stdin 和 stdout 这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流。

3. 库函数

3.1 Operations on files:

序号 函数 描述 补充描述 1 int remove ( const char * filename ); Deletes the file whose name is specified in filename.(永久删除文件) 操作成功,返回0,否则返回非零 2 int rename ( const char * oldname, const char * newname ); Changes the name of the file or directory specified by oldname to newname. 同上 3 FILE * tmpfile ( void ); 以二进制更新模式(wb+)创建临时文件 成功,返回临时文件, failure, NULL is returned. 4 char * tmpnam ( char * str ); 生成并返回一个有效的临时文件名,该文件名之前是不存在的。 成功,返回文件名,失败,返回NULL

3.2 File access:

序号 函数 描述 补充描述 1 int fclose ( FILE * stream ); 关闭流 stream。刷新所有的缓冲区。 success,return 0,fail,return EOF 2 FILE * fopen ( const char * filename, const char * mode ); 使用给定的模式 mode 打开 filename 所指向的文件 success,return FILE*,fail,return NULL 3 FILE * freopen ( const char * filename, const char * mode, FILE * stream ); 把一个新的文件名 filename 与给定的打开的流 stream 关联,同时关闭流中的旧文件。 同上 4 int fflush ( FILE * stream ); 刷新流 stream 的输出缓冲区。 成功,返回0,失败返回EOF 5 void setbuf ( FILE * stream, char * buffer ); 自定义控制流的缓冲 6 int setvbuf ( FILE * stream, char * buffer, int mode, size_t size ); 自定义缓冲流及缓冲模式 成功,返回0,失败返回非零

3.3 Formatted input/output:

序号 标签 函数原语 描述 补充描述 1 fprintf int fprintf ( FILE * stream, const char * format, … ); 格式化输出到指定流 成功,返回写入的字符总数,否则返回负数 2 printf int printf ( const char * format, … ); 格式化输出到标准输出流stdout 成功,返回写入的字符总数,否则返回负数 3 sprintf int sprintf ( char * str, const char * format, … ); 格式化输出到字符串缓冲区,并自动在末尾添加字符串结尾标识符’\0’ 成功,返回写入的字符总数(不包括自动添加的’\0’),否则,返回负数 4 snprintf (C99) int snprintf ( char * s, size_t n, const char * format, … ); 格式化输出到字符串缓冲区,并自动在末尾添加字符串结尾标识符’\0’(设置单词最大写入字符个数) 成功,返回写入的字符总数(不包括自动添加的’\0’),否则,返回负数 5 fscanf int fscanf ( FILE * stream, const char * format, … ); Read formatted data from stream 成功,返回成功填充的变量总数,失败返回EOF 6 scanf int scanf ( const char * format, … ); Read formatted data from stdin 同上 7 sscanf int sscanf ( const char * s, const char * format, …); Read formatted data from string 同上

可变参数操作函数:

序号 标签 描述 1 vfprintf Write formatted data from variable argument list to stream 2 vfscanf Read formatted data from stream into variable argument list 3 vprintf Print formatted data from variable argument list to stdout 4 vscanf Read formatted data into variable argument list 5 vsnprintf Write formatted data from variable argument list to sized buffer 6 vsprintf Write formatted data from variable argument list to string 7 vsscanf Read formatted data from string into variable argument list

3.4 Character input/output:

序号 标签 函数原语 描述 补充描述 1 fgetc int fgetc ( FILE * stream ); Get character from stream 成功,返回字符的ASCII码,否则返回EOF 2 getc int getc ( FILE * stream ); 同上 getc and fgetc are equivalent, except that getc may be implemented as a macro in some libraries 3 getchar int getchar ( void ); Get character from stdin 成功,返回字符的ASCII码,否则返回EOF 4 fgets char * fgets ( char * str, int num, FILE * stream ); Get string from stream 从fp指向的文件中读取下一个输入行(包括换行符),并将它存放在字符数组中,最多可以读取maxline-1个字符,读取的行以’\0’结尾,不安全 5 gets char * gets ( char * str ); Get string from stdin 读取字符串,欲换行符’\n’结束,并删除换行符,用fgets代替 6 fputc int fputc ( int character, FILE * stream ); Write character to stream 成功,返回写入的字符,失败,返回EOF 7 putc int putc ( int character, FILE * stream ); 同上 putc and fputc are equivalent, except that putc may be implemented as a macro in some libraries 8 putchar int putchar ( int character ); Write character to stdout 同上 9 fputs int fputs ( const char * str, FILE * stream ); Write string to stream 成功,返回非负数,失败,返回EOF 10 puts int puts ( const char * str ); Write string to stdout(每行末尾自动添加换行符) 同上 11 ungetc int ungetc ( int character, FILE * stream ); 使字符c(转化为uchar型)被压入到指定输入流 成功,返回压入的字符,失败,返回EOF

3.5 Direct input/output:

序号 标签 函数原语 描述 补充描述 1 fread size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); Read block of data from stream 成功,返回读取的元素总数,失败,返回0(可以用feof或ferror工具判断是出现错误还是到文件末尾) 2 fwrite size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream ); Write block of data to stream 返回实际写入元素的个数,正常情况返回值等于count

3.6 File positioning:

序号 标签 函数原语 描述 补充描述 1 fgetpos int fgetpos ( FILE * stream, fpos_t * pos ); Get current position in stream 成功,返回0 ,否则返回非零 2 fsetpos int fsetpos ( FILE * stream, const fpos_t * pos ); 根据*pos中的位置设置当前文件的位置 同上 3 fseek int fseek ( FILE * stream, long int offset, int origin ); 重定位文件位置以便随机stream流 同上 4 ftell long int ftell ( FILE * stream ); 返回当前流中的位置(同fgetpos) 但其返回long int(小型文件),大型文件用fgetpos 5 rewind void rewind ( FILE * stream ); 把流重置为起始位置 相当于 fseek(stream,0L,SEEK_SET)

3.7 Error-handling:

序号 标签 函数原语 描述 补充描述 1 clearerr void clearerr ( FILE * stream ); Resets both the error and the eof indicators of the stream 2 feof int feof ( FILE * stream ); 检测是否到达文件尾 到达结尾,返回非零,否则返回0 3 ferror int ferror ( FILE * stream ); 返回流的错误状态 若错误标志被设置,返回非零,否则返回0 4 perror void perror ( const char * str ); 打印错误信息至stderr

参考:http://www.cplusplus.com/reference/cstdio/
《C标准库》,P.J. Plauger 著
《C语言参考手册》,Samuel P. Harbison III 等著

0 0