C 标准库 - <stdio.h>

简介

stdio .h 头文件定义了三个��类型�一些�和��函数�执行输入和输出。

库��

下�是头文件 stdio.h 中定义的��类型:

���� & �述
1size_t
这是无符�整数类型,它是 sizeof 关键字的结果。
2FILE
这是一个适�存储文件�信�的对象类型。
3fpos_t
这是一个适�存储文件中任何�置的对象类型。

库�

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

��� & �述
1NULL
这个�是一个空指针常�的值。
2_IOFBF�_IOLBF 和 _IONBF
这些�扩展了带有特定值的整型常�表达�,并适用于 setvbuf 函数的第三个�数。
3BUFSIZ
这个�是一个整数,该整数代表了 setbuf 函数使用的缓冲区大�。
4EOF
这个�是一个表示已�到达文件结�的负整数。
5FOPEN_MAX
这个�是一个整数,该整数代表了系统�以�时打开的文件数�。
6FILENAME_MAX
这个�是一个整数,该整数代表了字符数组�以存储的文件�的最大长度。如果实现没有任何�制,则该值应为推�的最大值。
7L_tmpnam
这个�是一个整数,该整数代表了字符数组�以存储的由 tmpnam 函数创建的临时文件�的最大长度。
8SEEK_CUR�SEEK_END 和 SEEK_SET
这些�是在 fseek 函数中使用,用于在一个文件中定���的�置。
9TMP_MAX
这个�是 tmpnam 函数�生�的独特文件�的最大数�。
10stderr�stdin 和 stdout
这些�是指� FILE 类型的指针,分别对应于标准错误�标准输入和标准输出�。

库函数

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

为了更好地�解函数,请按照下�的�列学习这些函数,因为第一个函数中创建的文件会在�续的函数中使用到。
��函数 & �述
1int fclose(FILE *stream)
关闭� stream。刷新所有的缓冲区。
2void clearerr(FILE *stream)
清除给定� stream 的文件结�和错误标识符。
3int feof(FILE *stream)
测试给定� stream 的文件结�标识符。
4int ferror(FILE *stream)
测试给定� stream 的错误标识符。
5int fflush(FILE *stream)
刷新� stream 的输出缓冲区。
6int fgetpos(FILE *stream, fpos_t *pos)
获�� stream 的当�文件�置,并把它写入到 pos。
7FILE *fopen(const char *filename, const char *mode)
使用给定的模� mode 打开 filename 所指�的文件。
8size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
从给定� stream 读�数�到 ptr 所指�的数组中。
9FILE *freopen(const char *filename, const char *mode, FILE *stream)
把一个新的文件� filename 与给定的打开的� stream 关�,�时关闭�中的旧文件。
10int fseek(FILE *stream, long int offset, int whence)
设置� stream 的文件�置为给定的�移 offset,�数 offset �味�从给定的 whence �置查找的字节数。
11int fsetpos(FILE *stream, const fpos_t *pos)
设置给定� stream 的文件�置为给定的�置。�数 pos 是由函数 fgetpos 给定的�置。
12long int ftell(FILE *stream)
返回给定� stream 的当�文件�置。
13size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
把 ptr 所指�的数组中的数�写入到给定� stream 中。
14int remove(const char *filename)
删除给定的文件� filename,以便它��被访问。
15int rename(const char *old_filename, const char *new_filename)
把 old_filename 所指�的文件�改为 new_filename。
16void rewind(FILE *stream)
设置文件�置为给定� stream 的文件的开头。
17void setbuf(FILE *stream, char *buffer)
定义� stream 应如何缓冲。
18int setvbuf(FILE *stream, char *buffer, int mode, size_t size)
�一个定义� stream 应如何缓冲的函数。
19FILE *tmpfile(void)
以二进制更新模�(wb+)创建临时文件。
20char *tmpnam(char *str)
生�并返回一个有效的临时文件�,该文件�之�是�存在的。
21int fprintf(FILE *stream, const char *format, ...)
��格�化输出到� stream 中。
22int printf(const char *format, ...)
��格�化输出到标准输出 stdout。
23int sprintf(char *str, const char *format, ...)
��格�化输出到字符串。
24int vfprintf(FILE *stream, const char *format, va_list arg)
使用�数列表��格�化输出到� stream 中。
25int vprintf(const char *format, va_list arg)
使用�数列表��格�化输出到标准输出 stdout。
26int vsprintf(char *str, const char *format, va_list arg)
使用�数列表��格�化输出到字符串。
27int fscanf(FILE *stream, const char *format, ...)
从� stream 读�格�化输入。
28int scanf(const char *format, ...)
从标准输入 stdin 读�格�化输入。
29int sscanf(const char *str, const char *format, ...)
从字符串读�格�化输入。
30int fgetc(FILE *stream)
从指定的� stream 获�下一个字符(一个无符�字符),并把�置标识符往�移动。
31char *fgets(char *str, int n, FILE *stream)
从指定的� stream 读�一行,并把它存储在 str 所指�的字符串内。当读� (n-1) 个字符时,或者读�到�行符时,或者到达文件末尾时,它会�止,具体视情况而定。
32int fputc(int char, FILE *stream)
把�数 char 指定的字符(一个无符�字符)写入到指定的� stream 中,并把�置标识符往�移动。
33int fputs(const char *str, FILE *stream)
把字符串写入到指定的� stream 中,但�包括空字符。
34int getc(FILE *stream)
从指定的� stream 获�下一个字符(一个无符�字符),并把�置标识符往�移动。
35int getchar(void)
从标准输入 stdin 获�一个字符(一个无符�字符)。
36char *gets(char *str)
从标准输入 stdin 读�一行,并把它存储在 str 所指�的字符串中。当读�到�行符时,或者到达文件末尾时,它会�止,具体视情况而定。
37int putc(int char, FILE *stream)
把�数 char 指定的字符(一个无符�字符)写入到指定的� stream 中,并把�置标识符往�移动。
38int putchar(int char)
把�数 char 指定的字符(一个无符�字符)写入到标准输出 stdout 中。
39int puts(const char *str)
把一个字符串写入到标准输出 stdout,直到空字符,但�包括空字符。�行符会被追加到输出中。
40int ungetc(int char, FILE *stream)
把字符 char(一个无符�字符)推入到指定的� stream 中,以便它是下一个被读�到的字符。
41void perror(const char *str)
把一个�述性错误消�输出到标准错误 stderr。首先输出字符串 str,�跟一个冒�,然�是一个空格。
42int snprintf(char *str, size_t size, const char *format, ...)
格�字符串到 str 中。