菜单
本页目录

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 输出错误信息。
  • 返回值:无返回值。

这些函数涵盖了标准输入输出、文件操作、格式化输入输出以及错误处理等功能,常用于处理控制台和文件的输入输出操作。