C语言函数大全--f开头的函数(下)

总览
| 函数声明 | 函数功能 | 
|---|---|
double floor (double x); | 
获取小于或等于 x 的最大整数(double)。 | 
float floorf (float x); | 
获取小于或等于 x 的最大整数(float)。 | 
long double floorl (long double x) | 
获取小于或等于 x 的最大整数(long double)。 | 
int _flushall(void); | 
清除所有缓冲区,返回打开的流(输入和输出)的数量 | 
double fma (double x, double y, double z); | 
计算x*y+z的值,并将结果四舍五入(double)。 | 
float fmaf (float x, float y, float z ); | 
计算x*y+z的值,并将结果四舍五入(float )。 | 
long double fmal (long double x, long double y, long double z); | 
计算x*y+z的值,并将结果四舍五入(double)。 | 
double fmax (double x, double y); | 
获取 x 和 y 中的最大值(double) | 
float fmaxf (float x, float y); | 
获取 x 和 y 中的最大值(float) | 
long double fmaxl (long double x, long double y); | 
获取 x 和 y 中的最大值(long double) | 
double fmin (double x, double y); | 
获取 x 和 y 中的最小值(double) | 
float fminf (float x, float y); | 
获取 x 和 y 中的最小值(float) | 
long double fminl (long double x, long double y); | 
获取 x 和 y 中的最小值(long double) | 
double fmod (double x, double y); | 
计算 x 除以 y 的余数(double)。 | 
float fmodf (float x, float y); | 
计算 x 除以 y 的余数(float)。 | 
long double fmodl (long double x, long double y); | 
计算 x 除以 y 的余数(long double)。 | 
FILE *fopen(const char *filename, const char *mode); | 
使用给定的模式mode打开filename所指向的文件。 | 
int fprintf(FILE *stream, char *format[, argument,...]); | 
格式化输出到一个流文件中 | 
int fputc(int ch, FILE *stream); | 
将字符【ch为字符的ascii码】写到文件指针stream所指向的文件的当前写指针的位置 | 
int fputchar(char ch); | 
送一个字符到标准输出流(stdout)中,出错则返回EOF | 
int fputs(const char *str, FILE *stream); | 
把字符串写入到指定的流( stream) 中,但不包括空字符。 | 
int fread(void *buffer, int size, int count, FILE *stream); | 
从给定输入流stream读取最多count个对象到数组buffer中 | 
void free(void *ptr); | 
释放ptr指向的存储空间 | 
FILE * freopen(const char *filename, const char *mode, FILE *stream); | 
以指定模式重新指定到另一个文件 | 
double frexp (double x, int * exp); | 
将x 分解为有效位 和 2 的整数指数。(double)。 | 
float frexpf (float x, int * exp); | 
将x 分解为有效位 和 2 的整数指数。(float)。 | 
long double frexpl (long double x, int * exp); | 
将x 分解为有效位 和 2 的整数指数。(long double)。 | 
int fscanf(FILE *stream, char *format[,argument...]); | 
从一个流中执行格式化输入 | 
int fseek(FILE *stream, long offset, int fromwhere); | 
重定位流上的文件指针位置 | 
int fsetpos(FILE *stream, const fpos_t *pos); | 
将文件指针定位在pos指定的位置上。如果成功返回0,否则返回非0。 | 
int fstat(int handle,struct stat *buf); | 
由文件描述符获取文件状态 | 
long ftell(FILE *stream); | 
获取文件指针当前位置相对于文件首的偏移字节数 | 
int fwrite(const void *ptr, int size, int nitems, FILE *stream); | 
把ptr所指向的数组中的数据写入到给定流stream中 | 
1. floor,floorf,floorl
1.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double floor (double x); | 
获取小于或等于 x 的最大整数(double)。 | 
float floorf (float x); | 
获取小于或等于 x 的最大整数(float)。 | 
long double floorl (long double x) | 
获取小于或等于 x 的最大整数(long double)。 | 
1.2 演示示例
1  | 
  | 
1.3 运行结果

2. _flushall
2.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int _flushall(void); | 
清除所有缓冲区,返回打开的流(输入和输出)的数量 | 
2.2 演示示例
1  | 
  | 
2.3 运行结果

3. fma,fmaf,fmal
3.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double fma (double x, double y, double z); | 
计算x*y+z的值,并将结果四舍五入(double)。 | 
float fmaf (float x, float y, float z ); | 
计算x*y+z的值,并将结果四舍五入(float )。 | 
long double fmal (long double x, long double y, long double z); | 
计算x*y+z的值,并将结果四舍五入(double)。 | 
3.2 演示示例
1  | 
  | 
3.3 运行结果

4. fmax,fmaxf,fmaxl
4.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double fmax (double x, double y); | 
获取 x 和 y 中的最大值(double) | 
float fmaxf (float x, float y); | 
获取 x 和 y 中的最大值(float) | 
long double fmaxl (long double x, long double y); | 
获取 x 和 y 中的最大值(long double) | 
4.2 演示示例
1  | 
  | 
4.3 运行结果

5. fmin,fminf,fminl
5.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double fmin (double x, double y); | 
获取 x 和 y 中的最小值(double) | 
float fminf (float x, float y); | 
获取 x 和 y 中的最小值(float) | 
long double fminl (long double x, long double y); | 
获取 x 和 y 中的最小值(long double) | 
5.2 演示示例
1  | 
  | 
5.3 运行结果

6. fmod,fmodf,fmodl
6.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double fmod (double x, double y); | 
计算 x 除以 y 的余数(double)。 | 
float fmodf (float x, float y); | 
计算 x 除以 y 的余数(float)。 | 
long double fmodl (long double x, long double y); | 
计算 x 除以 y 的余数(long double)。 | 
6.2 演示示例
1  | 
  | 
6.3 运行结果

7. fopen
7.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
FILE *fopen(const char *filename, const char *mode); | 
使用给定的模式mode打开filename所指向的文件。 | 
参数:
- filename: 要打开的文件全路径名
 - mode: 文件访问模式
 
返回值:
 如果文件顺利打开后,指向该流的文件指针就会被返回;否则文件打开失败则返回 NULL,并把错误代码存在 error 中。
文件访问模式
| 文件访问模式 | 说明 | 
|---|---|
"r" | 
以只读模式打开文件,该文件必须存在。 | 
"w" | 
以只写模式打开文件。若文件不存在则创建该文件。若文件存在则其现有内容将被清除。 | 
"a" | 
以追加模式打开只写文件。若文件不存在则创建该文件;如果文件存在,则新写入的数据会被加到文件尾后。 | 
"r+" | 
以读写模式打开文件,该文件必须存在。 | 
"w+" | 
以读写模式打开文件。若文件不存在则创建该文件。若文件存在则其内容将被清除。 | 
"a+" | 
以追加模式打开可读写文件。若文件不存在则创建该文件;如果文件存在,则新写入的数据会被加到文件尾后。 | 
"rb" | 
以只读模式打开一个二进制文件。 | 
"wb" | 
以只写模式打开或新建一个二进制文件。 | 
"ab" | 
以追加模式打开一个二进制文件,并在文件末尾写入数据。 | 
"rb+" | 
以读写模式打开一个二进制文件,该文件必须存在。 | 
"wb+" | 
以读写模式打开或创建一个二进制文件。 | 
"ab+" | 
以追加模式打开一个二进制文件,以便在文件末尾写入数据。该文件也是可读的。 | 
"rt" | 
以只读模式打开一个文本文件。 | 
"wt" | 
以只读模式打开或创建文本文件。 | 
"at" | 
以追加模式打开一个文本文件,并在文件末尾写入数据。 | 
"rt+" | 
以读写模式打开一个文本文件。 | 
"wt+" | 
以读写模式打开或创建文本文件。 | 
"at+" | 
以追加模式打开文本文件,以便在文件末尾写入数据。该文件也是可读的。 | 
7.2 演示示例
1  | 
  | 
7.3 运行结果


8. fprintf
8.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fprintf(FILE *stream, char *format[, argument,...]); | 
格式化输出到一个流文件中 | 
8.2 演示示例
1  | 
  | 
8.3 运行结果

9. fputc
9.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fputc(int ch, FILE *stream); | 
将字符【ch为字符的ascii码】写到文件指针stream所指向的文件的当前写指针的位置 | 
注意: 在正常调用情况下,函数返回写入文件的字符的 ASCII 码值,出错时,返回 EOF(-1)。当正确写入一个字符或一个字节的数据后,文件内部写指针会自动后移一个字节的位置。EOF是在头文件 stdio.h中定义的宏。
9.2 演示示例
1  | 
  | 
9.3 运行结果

10. fputchar
10.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fputchar(char ch); | 
送一个字符到标准输出流(stdout)中,出错则返回EOF | 
10.2 演示示例
1  | 
  | 
10.3 运行结果

11. fputs
11.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fputs(const char *str, FILE *stream); | 
把字符串写入到指定的流( stream) 中,但不包括空字符。 | 
注意: fputs 函数如果成功则返回 0,如果发生错误则返回 EOF(-1)
11.2 演示示例
1  | 
  | 
11.3 运行结果

12. fread
12.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fread(void *buffer, int size, int count, FILE *stream); | 
从给定输入流stream读取最多count个对象到数组buffer中 | 
参数:
- buffer : 指向要读取的数组中首个对象的指针
 - size : 每个对象的大小(单位是字节)
 - count : 要读取的对象个数
 - stream : 指定输入流
 
返回值:
返回成功读取的对象个数,若出现错误或到达文件末尾,则可能小于count。
若 size 或 count 为零,则 fread 返回零且不进行其他动作。
fread 不区分文件尾和错误,因此调用者必须用 feof 和 ferror 才能判断发生了什么。
注意: 如果读取成功,流的文件位置指示器前进读取的字节数;否则出现错误,则流的文件位置指示器的位置不确定。同样若没有完整地读入最后一个元素,则其值也不确定。
12.2 演示示例
1  | 
  | 
12.3 运行结果

13. free
13.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
void free(void *ptr); | 
释放ptr指向的存储空间 | 
注意: 被释放的空间通常被送入可用存储区池,以后可以在调用 malloc、realloc 以及 calloc 函数来再分配。
13.2 演示示例
1  | 
  | 
13.3 运行结果

14. freopen
14.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
FILE * freopen(const char *filename, const char *mode, FILE *stream); | 
以指定模式重新指定到另一个文件 | 
参数:
- filename: 需要重定向到的文件名或文件路径。
 - mode: 代表文件访问权限的字符串。 参见 27 fopen
 - stream: 需要被重定向的文件流。
 
14.2 演示示例
1  | 
  | 
14.3 运行结果

15. frexp,frexpf,frexpl
15.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double frexp (double x, int * exp); | 
将x 分解为有效位 和 2 的整数指数。(double)。 | 
float frexpf (float x, int * exp); | 
将x 分解为有效位 和 2 的整数指数。(float)。 | 
long double frexpl (long double x, int * exp); | 
将x 分解为有效位 和 2 的整数指数。(long double)。 | 
注意: 有效位的绝对值范围为 0.5(包括) 到 1(不包括)。x = 有效位 * $2^{exp}$
15.2 演示示例
1  | 
  | 
15.3 运行结果

16. fscanf
16.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fscanf(FILE *stream, char *format[,argument...]); | 
从一个流中执行格式化输入 | 
注意: fscanf 遇到空格和换行时结束。它与 fgets 有区别,fgets 遇到空格不结束。
16.2 演示示例
1  | 
  | 
16.3 运行结果

17. fseek
17.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fseek(FILE *stream, long offset, int fromwhere); | 
重定位流上的文件指针位置 | 
注意: 如果执行成功,stream 将指向以 fromwhere【偏移起始位置:文件头 **0(SEEK_SET)**,当前位置 1(SEEK_CUR),文件尾2(SEEK_END) 】为基准,偏移 offset(指针偏移量)个字节的位置。如果执行失败(比如 offset 超过文件自身大小),则不改变 stream 指向的位置。
17.2 演示示例
1  | 
  | 
17.3 运行结果


18. fsetpos
18.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fsetpos(FILE *stream, const fpos_t *pos); | 
将文件指针定位在pos指定的位置上。如果成功返回0,否则返回非0。 | 
18.2 演示示例
1  | 
  | 
18.3 运行结果

19. fstat
19.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fstat(int handle,struct stat *buf); | 
由文件描述符获取文件状态 | 
19.2 演示示例
1  | 
  | 
19.3 运行结果

20. ftell
20.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
long ftell(FILE *stream); | 
获取文件指针当前位置相对于文件首的偏移字节数 | 
20.2 演示示例
1  | 
  | 
20.3 运行结果

21. fwrite
21.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fwrite(const void *ptr, int size, int nitems, FILE *stream); | 
把ptr所指向的数组中的数据写入到给定流stream中 | 
| 参数: | 
- ptr: 指向要被写入的元素数组的指针。
 - size: 要被写入的每个元素的大小,以字节为单位。
 - nitems: 元素的个数,每个元素的大小为 size 字节。
 - stream: 指向 FILE 对象的指针,该 FILE 对象指定了一个输出流。
 
注意: 如果写入成功,fwrite 返回一个 size_t 对象,表示元素的总数,该对象是一个整型数据类型。如果该数字与 nitems 参数不同,则会显示一个错误。
21.2 演示示例
1  | 
  | 
21.3 运行结果
