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

总览
| 函数声明 | 函数功能 | 
|---|---|
double fabs(double x); | 
返回 x 的绝对值(double) | 
float fabsf(float x); | 
返回 x 的绝对值(float) | 
long double fabsl(long double x); | 
返回 x 的绝对值(long double) | 
int fclose(FILE *stream); | 
关闭一个文件流 | 
int fcloseall(void); | 
关闭除标准流(stdin、stdout、stderr、stdprn、stdaux)之外的所有打开的流,刷新所有的流缓冲区,并返回关闭的流数。 | 
char * fcvt(double value, int ndigit, int *decpt, int *sign); | 
把一个双精度浮点数转换为字符串 | 
double fdim (double x, double y); | 
计算 x 和 y 之间的正差值 (double) | 
float fdimf (float x, float y); | 
计算 x 和 y 之间的正差值 (float) | 
long double fdiml (long double x, long double y); | 
计算 x 和 y 之间的正差值 (long double) | 
FILE * fdopen(int handle, char *type); | 
将文件描述符和文件流相关联 | 
int feof(FILE *stream); | 
检测流上的文件结束符。如果文件结束,则返回非0值,否则返回0 | 
int ferror(FILE *stream); | 
检测流上的错误【返回0,表示未出错;返回非零值,表示出错。】 | 
int fflush(FILE *stream); | 
清除读写缓冲区,并将缓冲区内的数据写回参数stream指向的文件中。 | 
int fgetc(FILE *stream); | 
从流中读取字符 | 
int fgetchar(void); | 
从流中读取字符 | 
int fgetpos(FILE *stream); | 
依据当前文件的句柄,获取当前访问指针位置信息 | 
char * fgets(char *str, int n, FILE *stream); | 
从指定的流中读取数据,每次读取一行 | 
long filelength(int handle); | 
获取文件的长度 | 
int fileno(FILE *stream); | 
获取参数stream指定的文件流所使用的文件描述符 | 
void fillellipse(int x, int y, int xradius, int yradius); | 
画出并填充一椭圆 | 
void fillpoly(int numpoints, int *polypoints); | 
画并填充一个多边形 | 
int _findfirst(char *pathname, struct _finddata_t *_FindData); | 
搜索与指定的文件名称匹配的第一个文件,若成功则返回第一个文件的文件描述符,否则返回-1L。 | 
int _findnext(int handle, struct _finddata_t *_FindData); | 
搜索与_findfirst函数提供的文件名称匹配的下一个实例,若成功则返回0,否则返回-1 | 
int finitef (double x); | 
检查 x 是无穷大值还是NaN 值(double)。如果是无穷大值或NaN值,返回 0;否则返回 1。 | 
int finitef (float x); | 
检查 x 是无穷大值还是NaN 值(float)。如果是无穷大值或NaN值,返回 0;否则返回 1。 | 
void floodfill(int x, int y, int border); | 
填充一个有界区域 | 
1. fabs,fabsf,fabsl
1.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double fabs(double x); | 
返回 x 的绝对值(double) | 
float fabsf(float x); | 
返回 x 的绝对值(float) | 
long double fabsl(long double x); | 
返回 x 的绝对值(long double) | 
1.2 演示示例
1  | 
  | 
1.3 运行结果

2. fclose
2.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fclose(FILE *stream); | 
关闭一个文件流 | 
2.2 演示示例
1  | 
  | 
2.3 运行结果


3. fcloseall
3.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fcloseall(void); | 
关闭除标准流(stdin、stdout、stderr、stdprn、stdaux)之外的所有打开的流,刷新所有的流缓冲区,并返回关闭的流数。 | 
3.2 演示示例
1  | 
  | 
3.3 运行结果

4. fcvt
4.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
char * fcvt(double value, int ndigit, int *decpt, int *sign); | 
把一个双精度浮点数转换为字符串 | 
- value: 要转换的双精度浮点数,输入参数
 - ndigit: 取小数的位数,输入参数
 - decpt: 表示小数点的位置,输出参数
 - sign: 表示value的符号,0为正数,1为负数,输出参数
 
4.2 演示示例
1  | 
  | 
4.3 运行结果

5. fdim,fdimf,fdiml
5.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
double fdim (double x, double y); | 
计算 x 和 y 之间的正差值 (double) | 
float fdimf (float x, float y); | 
计算 x 和 y 之间的正差值 (float) | 
long double fdiml (long double x, long double y); | 
计算 x 和 y 之间的正差值 (long double) | 
5.2 演示示例
1  | 
  | 
5.3 运行结果

6. fdopen
6.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
FILE * fdopen(int handle, char *type); | 
将文件描述符和文件流相关联 | 
6.2 演示示例
1  | 
  | 
6.3 运行结果

7. feof
7.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int feof(FILE *stream); | 
检测流上的文件结束符。如果文件结束,则返回非0值,否则返回0 | 
7.2 演示示例
1  | 
  | 
7.3 运行结果

8. ferror
8.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int ferror(FILE *stream); | 
检测流上的错误【返回0,表示未出错;返回非零值,表示出错。】 | 
8.2 演示示例
1  | 
  | 
8.3 运行结果

9. fflush
9.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fflush(FILE *stream); | 
清除读写缓冲区,并将缓冲区内的数据写回参数stream指向的文件中。 | 
9.2 演示示例
1  | 
  | 
9.3 运行结果

10. fgetc
10.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fgetc(FILE *stream); | 
从流中读取字符 | 
10.2 演示示例
1  | 
  | 
10.3 运行结果

11. fgetchar
11.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fgetchar(void); | 
从流中读取字符 | 
11.2 演示示例
1  | 
  | 
11.3 运行结果

12. fgetpos
12.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fgetpos(FILE *stream); | 
依据当前文件的句柄,获取当前访问指针位置信息 | 
12.2 演示示例
1  | 
  | 
12.3 运行结果

13. fgets
13.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
char * fgets(char *str, int n, FILE *stream); | 
从指定的流中读取数据,每次读取一行 | 
参数:
- str : 这是指向一个字符数组的指针,该数组存储了要读取的字符串。
 - n: 这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。
 - stream: 这是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。
 
注意: 如果文件中的一行,不足 n-1 个字符,则读完该行就直接结束。如若该行(包括最后一个换行符)的字符数超过 n-1,则 fgets 只返回一个不完整的行,但是,缓冲区总是以 NULL 字符结尾,对 fgets 的下一次调用会继续读该行。函数成功将返回 stream,失败或读到文件结尾返回 NULL。因此不能直接通过 fgets 的返回值来判断函数是否是出错而终止的,应该借助 feof 函数或者 ferror 函数来判断。
13.2 演示示例
1  | 
  | 
13.3 运行结果


14. filelength
14.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
long filelength(int handle); | 
获取文件的长度 | 
14.2 演示示例
1  | 
  | 
14.3 运行结果

15. fileno
15.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int fileno(FILE *stream); | 
获取参数stream指定的文件流所使用的文件描述符 | 
15.2 演示示例
1  | 
  | 
15.3 运行结果

16. fillellipse
16.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
void fillellipse(int x, int y, int xradius, int yradius); | 
画出并填充一椭圆 | 
参数:
int x:椭圆中心点的x坐标。在二维图形环境中,x坐标通常表示水平方向上的位置,从左到右增加;int y:椭圆中心点的y坐标。在二维图形环境中,y坐标通常表示垂直方向上的位置,从上到下增加;int xradius:椭圆在x轴方向上的半径。它是从椭圆中心点到椭圆边缘在x轴方向上的最大距离。如果 xradius 较大,椭圆在水平方向上会显得更宽;int yradius:椭圆在y轴方向上的半径。它是从椭圆中心点到椭圆边缘在y轴方向上的最大距离。如果 yradius 较大,椭圆在垂直方向上会显得更高。
16.2 演示示例
1  | 
  | 
16.3 运行结果

17. fillpoly
17.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
void fillpoly(int numpoints, int *polypoints); | 
画并填充一个多边形 | 
参数:
numpoints: 多边形边数polypoints: 存储各顶点坐标的数组,每两个一组表示一个顶点的X,Y坐标
17.2 演示示例
1  | 
  | 
17.3 运行结果

18. findfirst, findnext
18.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int _findfirst(char *pathname, struct _finddata_t *_FindData); | 
搜索与指定的文件名称匹配的第一个文件,若成功则返回第一个文件的文件描述符,否则返回-1L。 | 
int _findnext(int handle, struct _finddata_t *_FindData); | 
搜索与_findfirst函数提供的文件名称匹配的下一个实例,若成功则返回0,否则返回-1 | 
_findfirst 参数:
char *pathname:一个指向以null结尾的字符串的指针,该字符串指定了要搜索的文件名模式。文件名模式可以包含通配符,如*(匹配任意数量的字符)和?(匹配单个字符)。例如,"*.txt"会匹配所有以.txt为扩展名的文件。如果pathname字符串的最后一个字符是目录分隔符,那么函数将搜索该目录下的所有文件和子目录;如果pathname是一个空字符串,函数将搜索当前目录。struct _finddata_t *_FindData:一个指向_finddata_t结构体的指针,该结构体用于接收关于找到的文件的信息。_finddata_t结构体通常包含文件的属性(如是否只读、是否隐藏等)、创建时间、访问时间、修改时间、文件大小以及文件名等信息。调用_findfirst函数后,_FindData指向的结构体将被填充为与文件名模式匹配的第一个文件的信息。如果搜索成功,_findfirst函数将返回一个唯一的搜索句柄,这个句柄可以在后续的_findnext函数调用中使用,以查找与相同文件名模式匹配的其他文件。
_findnext 参数:
int handle:一个由_findfirst函数返回的搜索句柄。这个句柄标识了一个特定的文件搜索操作,该操作在调用_findfirst后开始。搜索句柄是一个唯一的标识符,用于后续调用_findnext来检索与原始搜索条件匹配的下一个文件或目录。struct _finddata_t *_FindData:同上_findfirst的参数
18.2 演示示例
1  | 
  | 
18.3 运行结果

19. finite,finitef
19.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
int finitef (double x); | 
检查 x 是无穷大值还是NaN 值(double)。如果是无穷大值或NaN值,返回 0;否则返回 1。 | 
int finitef (float x); | 
检查 x 是无穷大值还是NaN 值(float)。如果是无穷大值或NaN值,返回 0;否则返回 1。 | 
19.2 演示示例
1  | 
  | 
19.3 运行结果

20. floodfill
20.1 函数说明
| 函数声明 | 函数功能 | 
|---|---|
void floodfill(int x, int y, int border); | 
填充一个有界区域 | 
参数:
int x:要开始填充的区域的起始点的 x 坐标;int y:要开始填充的区域的起始点的 y 坐标;int border:填充的边界颜色。泛洪填充算法会从起始点 (x, y) 开始,将所有相邻的、颜色与起始点相同的区域填充为新的颜色,直到遇到边界颜色 border 为止。这样,算法就不会越过由 border 颜色定义的边界,从而保证了填充区域的准确性。
20.2 演示示例
1  | 
  | 
20.3 运行结果
