码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 中。
  • 热门教程
  • Java教程
    Python教程
    C#教程
    C/C++教程
    GO教程
    SQL教程
    JS教程
    HTML/CSS教程
    NodeJS教程
    PHP教程
  • C/C++教程
  • C 语言教程
    • C 简介
    • C 环境设置
    • C 程序结构
    • C 基本语法
    • C 数据类型
    • C 变量
    • C 常量
    • C 存储类
    • C 运算符
    • C 判断
    • C 循环
    • C 函数
    • C 作用域规则
    • C 数组
    • C enum(枚举)
    • C 指针
    • C 函数指针与回调函数
    • C 字符串
    • C 结构体
    • C 共用体
    • C 位域
    • C typedef
    • C 输入 & 输出
    • C 文件读写
    • C 预处理器
    • C 头文件
    • C 强制类型转换
    • C 错误处理
    • C 递归
    • C 可变参数
    • C 内存管理
    • C 命令行参数
    • C 排序算法
    • C 语言实例
    • C 经典100例
  • C 标准库
    • C 标准库 - 参考手册
    • C 标准库 - <assert.h>
    • C 标准库 - <ctype.h>
    • C 标准库 - <errno.h>
    • C 标准库 - <float.h>
    • C 标准库 - <limits.h>
    • C 标准库 - <locale.h>
    • C 标准库 - <math.h>
    • C 标准库 - <setjmp.h>
    • C 标准库 - <signal.h>
    • C 标准库 - <stdarg.h>
    • C 标准库 - <stddef.h>
    • C 标准库 - <stdio.h>
    • C 标准库 - <stdlib.h>
    • C 标准库 - <string.h>
    • C 标准库 - <time.h>
    • C 语言测验
  • C++ 教程
    • C++ 简介
    • C++ 环境设置
    • C++ 基本语法
    • C++ 注释
    • C++ 数据类型
    • C++ 变量类型
    • C++ 变量作用域
    • C++ 常量
    • C++ 修饰符类型
    • C++ 存储类
    • C++ 运算符
    • C++ 循环
    • C++ 判断
    • C++ 函数
    • C++ 数字
    • C++ 数组
    • C++ 字符串
    • C++ 指针
    • C++ 引用
    • C++ 日期 & 时间
    • C++ 基本的输入输出
    • C++ 数据结构
  • C++ 面向对象
    • C++ 类 & 对象
    • C++ 继承
    • C++ 重载运算符和重载函数
    • C++ 多态
    • C++ 数据抽象
    • C++ 数据封装
    • C++ 接口(抽象类)
  • C++ 高级教程
    • C++ 文件和流
    • C++ 异常处理
    • C++ 动态内存
    • C++ 命名空间
    • C++ 模板
    • C++ 预处理器
    • C++ 信号处理
    • C++ 多线程
    • C++ Web 编程
  • C++ 资源库
    • C++ STL 教程
    • C++ 标准库
    • C++ 有用的资源
    • C++ 实例
    • C++ 测验
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号