stdio.h 头文件函数
stdio.h
头文件提供了输入输出功能的函数,用于处理文件和标准输入输出流。以下是主要函数的列表及其简要描述:
1. 标准输入输出函数
int printf(const char *format, ...)
- 功能:将格式化的输出打印到标准输出(通常是屏幕)。
- 返回值:成功时返回打印的字符数;失败时返回负值。
int scanf(const char *format, ...)
- 功能:从标准输入读取格式化数据。
- 返回值:成功读取并赋值的项数;如果发生输入错误或到达文件尾,则返回
EOF
。
int putchar(int c)
- 功能:将字符
c
输出到标准输出。 - 返回值:成功时返回字符
c
;失败时返回EOF
。
int getchar(void)
- 功能:从标准输入读取一个字符。
- 返回值:成功时返回读取的字符;如果到达文件尾或发生错误,则返回
EOF
。
int puts(const char *str)
- 功能:输出字符串
str
并在末尾添加换行符。 - 返回值:成功时返回非负值;失败时返回
EOF
。
char *gets(char *str)
- 功能:从标准输入读取一行并存储在
str
中(不推荐使用,可能引发缓冲区溢出)。 - 返回值:返回指向字符串
str
的指针;如果发生错误或到达文件尾,返回NULL
。
2. 文件操作函数
FILE *fopen(const char *filename, const char *mode)
- 功能:打开指定文件,并指定访问模式(如读、写、追加等)。
- 返回值:成功时返回文件指针;失败时返回
NULL
。
int fclose(FILE *stream)
- 功能:关闭打开的文件。
- 返回值:成功时返回 0;失败时返回
EOF
。
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
- 功能:从文件读取数据到缓冲区
ptr
中。 - 返回值:成功读取的元素数。
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
- 功能:将缓冲区
ptr
中的数据写入到文件。 - 返回值:成功写入的元素数。
int fgetc(FILE *stream)
- 功能:从文件读取一个字符。
- 返回值:成功时返回读取的字符;失败或到达文件尾时返回
EOF
。
int fputc(int c, FILE *stream)
- 功能:将字符
c
写入文件。 - 返回值:成功时返回写入的字符;失败时返回
EOF
。
char *fgets(char *str, int n, FILE *stream)
- 功能:从文件读取最多
n-1
个字符并存储在str
中。 - 返回值:成功时返回
str
;如果到达文件尾或发生错误,返回NULL
。
int fputs(const char *str, FILE *stream)
- 功能:将字符串
str
写入文件。 - 返回值:成功时返回非负值;失败时返回
EOF
。
int fflush(FILE *stream)
- 功能:刷新输出流,将缓冲区的数据写入文件。
- 返回值:成功时返回 0;失败时返回
EOF
。
3. 文件定位和状态函数
int fseek(FILE *stream, long offset, int whence)
- 功能:将文件指针移动到指定位置。
- 返回值:成功时返回 0;失败时返回非零值。
long ftell(FILE *stream)
- 功能:获取文件指针的当前位置。
- 返回值:返回文件指针位置的偏移量;失败时返回
-1L
。
void rewind(FILE *stream)
- 功能:将文件指针移动到文件开头。
int feof(FILE *stream)
- 功能:检查是否到达文件尾。
- 返回值:如果到达文件尾返回非零值;否则返回 0。
int ferror(FILE *stream)
- 功能:检查文件流是否出错。
- 返回值:如果发生错误返回非零值;否则返回 0。
4. 格式化输入输出函数
int fprintf(FILE *stream, const char *format, ...)
- 功能:将格式化输出写入文件。
- 返回值:成功时返回写入的字符数;失败时返回负值。
int fscanf(FILE *stream, const char *format, ...)
- 功能:从文件读取格式化数据。
- 返回值:成功读取并赋值的项数;如果发生输入错误或到达文件尾,则返回
EOF
。
int sprintf(char *str, const char *format, ...)
- 功能:将格式化输出写入字符串
str
。 - 返回值:成功时返回写入的字符数;失败时返回负值。
int sscanf(const char *str, const char *format, ...)
- 功能:从字符串
str
中读取格式化数据。 - 返回值:成功读取并赋值的项数;如果输入失败,则返回
EOF
。
5. 临时文件和名称函数
FILE *tmpfile(void)
- 功能:创建并打开一个临时二进制文件,文件在关闭或程序结束时被自动删除。
- 返回值:成功时返回文件指针;失败时返回
NULL
。
char *tmpnam(char *str)
- 功能:生成一个唯一的临时文件名。
- 返回值:返回指向生成的文件名的指针;失败时返回
NULL
。
6. 二进制输入输出函数
int fread(void *ptr, size_t size, size_t count, FILE *stream)
- 功能:以二进制形式从文件读取数据到缓冲区
ptr
。 - 返回值:成功读取的项数。
int fwrite(const void *ptr, size_t size, size_t count, FILE *stream)
- 功能:以二进制形式将缓冲区
ptr
中的数据写入文件。 - 返回值:成功写入的项数。
7. 错误处理函数
void perror(const char *str)
- 功能:根据
errno
输出错误信息。 - 返回值:无返回值。
这些函数涵盖了标准输入输出、文件操作、格式化输入输出以及错误处理等功能,常用于处理控制台和文件的输入输出操作。