C编程中的头文件"<stdio.h>
"one_answers"<stdlib.h>
"之间有什么区别?
一个有一组函数声明、常量、宏和类型定义,另一个有不同的函数声明、常数、宏和类定义。如果您想查看内容,可以使用简单的文本编辑器打开文件。
stdio
代表标准输入/输出,其内容通常但不完全与输入输出操作有关,无论是与硬件或物理设备有关,还是与系统支持的文件有关。可用的函数声明、宏和类型定义列表可以在这里找到:
功能:
-
文件操作:
-
remove-删除文件
-
rename-重命名文件
-
tmpfile-打开临时文件
-
tmpnam-生成临时文件名
-
-
文件访问:
-
fclose-关闭文件
-
fflush-冲洗流
-
fopen-打开文件
-
freopen-使用不同的文件或模式重新打开流
-
setbuf-设置流缓冲区
-
setvbuf-更改流缓冲
-
-
格式化输入/输出:
-
fprintf-将格式化数据写入流
-
fscanf-从流读取格式化数据
-
printf-将格式化数据打印到标准输出
-
scanf-从stdin 读取格式化数据
-
snprintf-将格式化输出写入大小缓冲区
-
sprintf-将格式化数据写入字符串
-
sscanf-从字符串读取格式化数据
-
vfprintf-将变量参数列表中的格式化数据写入流
-
vfscanf-从流中读取格式化数据到变量参数列表
-
vprintf-将变量参数列表中的格式化数据打印到标准输出
-
vscanf-将格式化数据读取到变量参数列表中
-
vsnprintf-将格式化的数据从变量参数列表写入大小缓冲区
-
vsprintf-将变量参数列表中的格式化数据写入字符串
-
vsscanf-将字符串中的格式化数据读取到变量参数列表中
-
-
字符输入/输出:
-
fgetc-从流中获取字符
-
fgets-从流中获取字符串
-
fputc-将字符写入流
-
fputs-将字符串写入流
-
getc-从流中获取字符
-
getchar-从stdin 获取字符
-
gets-从stdin 获取字符串
-
putc-将字符写入流
-
putchar-将字符写入stdout
-
puts-将字符串写入stdout
-
ungetc-从流中取消设置字符
-
-
直接输入/输出:
-
fread-从流读取数据块
-
fwrite-将数据块写入流
-
-
文件定位:
-
fgetpos-获取流中的当前位置
-
fseek-重新定位流位置指示器
-
fsetpos-设置流的位置指示器
-
ftell-获取流中的当前位置
-
倒带-将流的位置设置为起始
-
-
错误处理:
-
clearerr-清除错误指示器
-
feof-检查文件结束指示符
-
ferror-检查错误指示器
-
perror-打印错误消息
-
宏:
-
BUFSIZ-缓冲区大小
-
EOF-文件结束
-
FILENAME_MAX-文件名的最大长度
-
FOPEN_MAX-同时开放流的潜在限制
-
L_tmpnam-临时文件名的最小长度
-
NULL-空指针(宏)
-
TMP_MAX-临时文件数
-
另外:_IOFBF、_IOLBF、_IONBF(与setvbuf一起使用)以及SEEK_CUR、SEEK_END和SEEK_SET(与fseek一起使用)。
类型:
-
FILE-包含控制流的信息的对象
-
fpos_t-包含指定文件中位置的信息的对象
-
size_t-无符号积分型
stdlib
代表标准库,它具有通用功能,包括动态内存管理、随机数生成、通信、算术、搜索、排序和转换等。可用的函数声明、宏和类型定义列表可在此处找到:
功能
-
字符串转换
-
atof-将字符串转换为双
-
atoi-将字符串转换为整数
-
atol-将字符串转换为长整数
-
atoll-将字符串转换为长整型
-
strtod-将字符串转换为双
-
strtof-将字符串转换为浮动
-
strtol-将字符串转换为长整数
-
strtelld-将字符串转换为长双
-
strtoll-将字符串转换为长整型
-
strtoul-将字符串转换为无符号长整数
-
strtoull-将字符串转换为无符号长整型
-
-
伪随机序列生成
-
rand-生成随机数
-
srand-初始化随机数生成器
-
-
动态内存管理
-
calloc-分配和零初始化数组
-
free-取消分配内存块
-
malloc-分配内存块
-
realloc-重新定位内存块
-
-
环境
-
中止-中止当前进程
-
atexit-设置要在退出时执行的功能
-
at_quick_exit-设置要在快速退出上执行的功能
-
exit-终止调用进程
-
getenv-获取环境字符串
-
quick_exit-终止调用过程快速
-
system-执行系统命令
-
_退出-终止呼叫过程
-
-
搜索和排序
-
bsearch-数组中的二进制搜索
-
qsort-对阵列的元素进行排序
-
-
整数算法
-
abs-绝对值
-
div-积分除法
-
实验室-绝对值
-
ldiv-积分除法
-
llabs-绝对值
-
lldiv-积分除法
-
-
多字节字符
-
mblen-获取多字节字符的长度
-
mbtowc-将多字节序列转换为宽字符
-
wc坟墓-将宽字符转换为多字节序列
-
-
多字节字符串
-
mbstowcs-将多字节字符串转换为宽字符串
-
wcstombs-将宽字符串转换为多字节字符串
-
宏常量
-
EXIT_FAILURE-故障终止代码
-
EXIT_SUCCESS-成功终止代码
-
MB_CUR_MAX-多字节字符的最大大小
-
NULL-空指针
-
RAND_MAX-RAND 返回的最大值
类型
-
div_t-div 返回的结构
-
ldiv_t-ldiv 返回的结构
-
lldiv_t-lldiv 返回的结构
-
size_t-无符号积分型
区分这两个头文件的一种简单方法是,"<stdio.h>"包含printf()和scanf()的声明,而"<stdlib.h>"包含malloc()和free()的宣言。从这个意义上说,这两个头文件的主要区别可以认为,虽然"<stdio.h>"包含"与文件相关的输入/输出"函数的头信息,但"<stdlib.h>"则包含"内存分配/释放"函数的首标信息。
它们有不同的内容。
C标准库分为几个主要区域,每个区域都有一个单独的头文件。
stdio.h
(标准I/O)包含用于处理文本和二进制I/O(printf
、scanf
、fopen
、getchar
等)的例程的宏定义、类型定义和函数声明
stdlib.h
(标准库)包含用于处理内存管理、文本到数字转换、随机数等(malloc
、calloc
、strtol
、rand
等)的例程的宏定义、类型定义和函数声明
stdio.h
执行输入/输出操作的C库输入和输出操作也可以使用C标准输入和输出库(cstdio,在C语言中称为studio.h)在C++中执行。此库使用流来操作物理设备,如键盘、打印机、终端或系统支持的任何其他类型的文件。流是一种抽象,可以与这些流进行统一交互;所有流都具有类似的属性,与物理介质的单个特性无关。
流在cstdio库中作为指向FILE对象的指针进行处理。指向FILE对象的指针唯一地标识流,并在涉及该流的操作中用作参数。
还有三个标准流:stdin、stdout和stderr,它们是为使用库的所有程序自动创建和打开的。
stdlib.h
<stdlib.h>library(标准库)提供了回答各种问题的函数。首先,这个库将允许您通过分配或释放堆中的内存来动态管理内存。它还允许您与运行该程序的操作系统进行交互。该库还提供了许多其他实用函数,用于在数据类型、算法(排序、二分搜索、生成伪随机数等)和其他可能性之间进行转换。