C标准库 stdio.h

stdio.h 提供了大量输入输出函数。

stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。

stdio库定义的变量

下面是头文件 stdio.h 中定义的变量类型:

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

stdio库定义的宏

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

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

stdio库定义的函数

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

为了更好地理解函数,请按照下面的序列学习这些函数,因为第一个函数中创建的文件会在后续的函数中使用到。

序号 函数 函数说明
1 int fclose(FILE *stream) 关闭流 stream。刷新所有的缓冲区。
2 void clearerr(FILE *stream) 清除给定流 stream 的文件结束和错误标识符。
3 int feof(FILE *stream) 测试给定流 stream 的文件结束标识符。
4 int ferror(FILE *stream) 测试给定流 stream 的错误标识符。
5 int fflush(FILE *stream) 刷新流 stream 的输出缓冲区。
6 int fgetpos(FILE *stream, fpos_t *pos) 获取流 stream 的当前文件位置,并把它写入到 pos。
7 FILE *fopen(const char *filename, const char *mode) 使用给定的模式 mode 打开 filename 所指向的文件。
8 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 从给定流 stream 读取数据到 ptr 所指向的数组中。
9 FILE *freopen(const char *filename, const char *mode, FILE *stream) 把一个新的文件名 filename 与给定的打开的流 stream 关联,同时关闭流中的旧文件。
10 int fseek(FILE *stream, long int offset, int whence) 设置流 stream 的文件位置为给定的偏移 offset,参数 offset 意味着从给定的 whence 位置查找的字节数。
11 int fsetpos(FILE *stream, const fpos_t *pos) 设置给定流 stream 的文件位置为给定的位置。参数 pos 是由函数 fgetpos 给定的位置。
12 long int ftell(FILE *stream) 返回给定流 stream 的当前文件位置。
13 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) 把 ptr 所指向的数组中的数据写入到给定流 stream 中。
14 int remove(const char *filename) 删除给定的文件名 filename,以便它不再被访问。
15 int rename(const char *old_filename, const char *new_filename) 把 old_filename 所指向的文件名改为 new_filename。
16 void rewind(FILE *stream) 设置文件位置为给定流 stream 的文件的开头。
17 void setbuf(FILE *stream, char *buffer) 定义流 stream 应如何缓冲。
18 int setvbuf(FILE *stream, char *buffer, int mode, size_t size) 另一个定义流 stream 应如何缓冲的函数。
19 FILE *tmpfile(void) 以二进制更新模式(wb+)创建临时文件。
20 char *tmpnam(char *str) 生成并返回一个有效的临时文件名,该文件名之前是不存在的。
21 int fprintf(FILE *stream, const char *format, ...) 发送格式化输出到流 stream 中。
22 int printf(const char *format, ...) 发送格式化输出到标准输出 stdout。
23 int sprintf(char *str, const char *format, ...) 发送格式化输出到字符串。
24 int vfprintf(FILE *stream, const char *format, va_list arg) 使用参数列表发送格式化输出到流 stream 中。
25 int vprintf(const char *format, va_list arg) 使用参数列表发送格式化输出到标准输出 stdout。
26 int vsprintf(char *str, const char *format, va_list arg) 使用参数列表发送格式化输出到字符串。
27 int fscanf(FILE *stream, const char *format, ...) 从流 stream 读取格式化输入。
28 int scanf(const char *format, ...) 从标准输入 stdin 读取格式化输入。
29 int sscanf(const char *str, const char *format, ...) 从字符串读取格式化输入。
30 int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
31 char *fgets(char *str, int n, FILE *stream) 从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
32 int fputc(int char, FILE *stream) 把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
33 int fputs(const char *str, FILE *stream) 把字符串写入到指定的流 stream 中,但不包括空字符。
34 int getc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
35 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。
36 char *gets(char *str) 从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
37 int putc(int char, FILE *stream) 把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
38 int putchar(int char) 把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。
39 int puts(const char *str) 把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符。换行符会被追加到输出中。
40 int ungetc(int char, FILE *stream) 把字符 char(一个无符号字符)推入到指定的流 stream 中,以便它是下一个被读取到的字符。
41 void perror(const char *str) 把一个描述性错误消息输出到标准错误 stderr。首先输出字符串 str,后跟一个冒号,然后是一个空格。
42 int snprintf(char *str, size_t size, const char *format, ...) 格式字符串到 str 中。
赞(0)
未经允许不得转载:极客笔记 » C标准库 stdio.h

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
assert.h
C标准库 assert.hC标准库 断言函数assert
ctype.h
C标准库 ctype.hC标准库 isascii函数C标准库 isalnum函数C标准库 isalpha函数C标准库 iscntrl函数C标准库 isdigit函数C标准库 isgraph函数C标准库 islower函数C标准库 isprint函数C标准库 ispunct函数C标准库 isspace函数C标准库 isupper函数C标准库 isxdigit函数C标准库 toascii函数C标准库 tolower函数C标准库 toupper函数
errno.h
C标准库 errno.h
float.h
C标准库 float.hC标准库 _clear87函数C标准库 _control87函数C标准库 _status87函数
limits.h
C标准库 limits.h
locale.h
C标准库 locale.h
math.h
C标准库 math.hC标准库 abs函数C标准库 acos函数C标准库 asin函数C标准库 atan函数C标准库 atan2函数C标准库 ceil函数C标准库 cos函数C标准库 cosh函数C标准库 exp函数C标准库 fabs函数C标准库 floor函数C标准库 fmod函数C标准库 frexp函数C标准库 hypot函数C标准库 labs函数C标准库 ldexp函数C标准库 log函数C标准库 log10函数C标准库 modf函数C标准库 pow函数C标准库 pow10函数C标准库 sin函数C标准库 sinh函数C标准库 sqrt函数C标准库 tan函数C标准库 tanh函数
setjmp.h
C标准库 setjmp.hC标准库 longjmp函数C标准库 setjmp函数
signal.h
C标准库 signal.hC标准库 raise函数C标准库 signal函数
stdarg.h
C标准库 stdarg.hC标准库 va_arg函数C标准库 va_end函数C标准库 va_start函数C标准库 vfprintf函数C标准库 vfscanf函数C标准库 vprintf函数C标准库 vsprintf函数C标准库 vscanf函数C标准库 vsscanf函数
stddef.h
C标准库 stddef.h
stdio.h
C标准库 stdio.hC库函数 snprintf复制字符串C标准库 clearerr函数C标准库 fclose函数C标准库 feof函数C标准库 ferror函数C标准库 fflush函数C标准库 fgetc函数C标准库 fgetchar函数C标准库 fgetpos函数C标准库 fgets函数C标准库 fopen函数C标准库 fprintf函数C标准库 fputchar函数C标准库 fputs函数C标准库 fread函数C标准库 freopen函数C标准库 fscanf函数C标准库 fseek函数C标准库 fsetpos函数C标准库 ftell函数C标准库 fwrite函数C标准库 getc函数C标准库 getchar函数C标准库 getche函数C标准库 gets函数C标准库 getw函数C标准库 perror函数C标准库 printf函数C标准库 putc函数C标准库 putchar函数C标准库 puts函数C标准库 putw函数C标准库 rename函数C标准库 remove函数C标准库 rewind函数C标准库 scanf函数C标准库 setbuf函数C标准库 setvbuf函数C标准库 sprintf函数C标准库 sscanf函数C标准库 tmpfile函数C标准库 tmpnam函数C标准库 ungetc函数C标准库 ungetch函数
stdlib.h
C标准库 stdlib.hC库函数 atoi字符串转为整数C库函数 malloc分配内存C库函数 realloc重新分配内存C库函数 calloc申请零值内存C库函数 free释放申请的内存C标准库 abort函数C标准库 atexit函数C标准库 atof函数C标准库 atol函数C标准库 bsearch函数C标准库 div函数C标准库 ecvt函数C标准库 exit函数C标准库 fcvt函数C标准库 gcvt函数C标准库 getenv函数C标准库 itoa函数C标准库 ldiv函数C标准库 lfind函数C标准库 lsearch函数C标准库 putenv函数C标准库 qsort函数C标准库 rand函数C标准库 random函数C标准库 randomize函数C标准库 srand函数C标准库 strtod函数C标准库 strtol函数C标准库 swab函数C标准库 system函数
string.h
C标准库 string.hC库函数 memset做内存填充C库函数 strcpy复制字符串C库函数 strncmp比较字符串C标准库 movmem函数C标准库 setmem函数C标准库 stpcpy函数C标准库 strcat函数C标准库 strchr函数C标准库 strcmp函数C标准库 strcmpi函数C标准库 strcspn函数C标准库 strdup函数C标准库 stricmp函数C标准库 strlen函数C标准库 strlwr函数C标准库 strncat函数C标准库 strncmpi函数C标准库 strncpy函数C标准库 strnicmp函数C标准库 strpbrk函数C标准库 strrev函数C标准库 strset函数C标准库 strstr函数C标准库 strtok函数C标准库 strupr函数
time.h
C标准库 time.hC标准库 asctime函数C标准库 clock函数C标准库 ctime函数C标准库 difftime函数C标准库 gmtime函数C标准库 localtime函数C标准库 time函数C标准库 tzset函数