F開頭的函數

函數名: fabs
功 能: 返回浮點數的絕對值
用 法: double fabs(double x);
程序例:

#include <stdio.h> #include <math.h> int main(void) { float number = -1234.0; printf("number: %f absolute value: %f\n", number, fabs(number)); return 0; }


函數名: farcalloc
功 能: 從遠堆棧中申請空間
用 法: void far *farcalloc(unsigned long units, unsigned ling unitsz);
程序例:

#include <stdio.h> #include <alloc.h> #include <string.h> #include <dos.h> int main(void) { char far *fptr; char *str = "Hello"; /* allocate memory for the far pointer */ fptr = farcalloc(10, sizeof(char)); /* copy "Hello" into allocated memory */ /* Note: movedata is used because you might be in a small data model, in which case a normal string copy routine can not be used since it assumes the pointer size is near. */ movedata(FP_SEG(str), FP_OFF(str), FP_SEG(fptr), FP_OFF(fptr), strlen(str)); /* display string (note the F modifier) */ printf("Far string is: %Fs\n", fptr); /* free the memory */ farfree(fptr); return 0; }


函數名: farcoreleft
功 能: 返回遠堆中未作用存儲區大小
用 法: long farcoreleft(void);
程序例:

#include <stdio.h> #include <alloc.h> int main(void) { printf("The difference between the\ highest allocated block in the\ far\n"); printf("heap and the top of the far heap\ is: %lu bytes\n", farcoreleft()); return 0; }


函數名: farfree
功 能: 從遠堆中釋放一塊
用 法: void farfree(void);
程序例:

#include <stdio.h> #include <alloc.h> #include <string.h> #include <dos.h> int main(void) { char far *fptr; char *str = "Hello"; /* allocate memory for the far pointer */ fptr = farcalloc(10, sizeof(char)); /* copy "Hello" into allocated memory */ /* Note: movedata is used because you might be in a small data model, in which case a normal string copy routine can't be used since it assumes the pointer size is near. */ movedata(FP_SEG(str), FP_OFF(str), FP_SEG(fptr), FP_OFF(fptr), strlen(str)); /* display string (note the F modifier) */ printf("Far string is: %Fs\n", fptr); /* free the memory */ farfree(fptr); return 0; }


函數名: farmalloc
功 能: 從遠堆中分配存儲塊
用 法: void far *farmalloc(unsigned long size);
程序例:

#include <stdio.h> #include <alloc.h> #include <string.h> #include <dos.h> int main(void) { char far *fptr; char *str = "Hello"; /* allocate memory for the far pointer */ fptr = farmalloc(10); /* copy "Hello" into allocated memory */ /* Note: movedata is used because we might be in a small data model, in which case a normal string copy routine can not be used since it assumes the pointer size is near. */ movedata(FP_SEG(str), FP_OFF(str), FP_SEG(fptr), FP_OFF(fptr), strlen(str)); /* display string (note the F modifier) */ printf("Far string is: %Fs\n", fptr); /* free the memory */ farfree(fptr); return 0; }


函數名: farrealloc
功 能: 調整遠堆中的分配塊
用 法: void far *farrealloc(void far *block, unsigned long newsize);
程序例:

#include <stdio.h> #include <alloc.h> int main(void) { char far *fptr; fptr = farmalloc(10); printf("First address: %Fp\n", fptr); fptr = farrealloc(fptr,20); printf("New address : %Fp\n", fptr); farfree(fptr); return 0; }


函數名: fclose
功 能: 關閉一個流
用 法: int fclose(FILE *stream);
程序例:

#include <string.h> #include <stdio.h> int main(void) { FILE *fp; char buf[11] = "0123456789"; /* create a file containing 10 bytes */ fp = fopen("DUMMY.FIL", "w"); fwrite(&buf, strlen(buf), 1, fp); /* close the file */ fclose(fp); return 0; }


函數名: fcloseall
功 能: 關閉打開流
用 法: int fcloseall(void);
程序例:

#include <stdio.h> int main(void) { int streams_closed; /* open two streams */ fopen("DUMMY.ONE", "w"); fopen("DUMMY.TWO", "w"); /* close the open streams */ streams_closed = fcloseall(); if (streams_closed == EOF) /* issue an error message */ perror("Error"); else /* print result of fcloseall() function */ printf("%d streams were closed.\n", streams_closed); return 0; }


函數名: fcvt
功 能: 把一個浮點數轉換爲字符串
用 法: char *fcvt(double value, int ndigit, int *decpt, int *sign);
程序例:

#include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { char *string; double value; int dec, sign; int ndig = 10; clrscr(); value = 9.876; string = ecvt(value, ndig, &dec, &sign); printf("string = %s dec = %d sign = %d\n", string, dec, sign); value = -123.45; ndig= 15; string = ecvt(value,ndig,&dec,&sign); printf("string = %s dec = %d sign = %d\n",string, dec, sign); value = 0.6789e5; /* scientific notation */ ndig = 5; string = ecvt(value,ndig,&dec,&sign); printf("string = %s dec = %d\ sign = %d\n", string, dec, sign); return 0; }


函數名: fdopen
功 能: 把流與一個文件句柄相接
用 法: FILE *fdopen(int handle, char *type);
程序例:

#include <sys\stat.h> #include <stdio.h> #include <fcntl.h> #include <io.h> int main(void) { int handle; FILE *stream; /* open a file */ handle = open("DUMMY.FIL", O_CREAT, S_IREAD | S_IWRITE); /* now turn the handle into a stream */ stream = fdopen(handle, "w"); if (stream == NULL) printf("fdopen failed\n"); else { fprintf(stream, "Hello world\n"); fclose(stream); } return 0; }


函數名: feof
功 能: 檢測流上的文件結束符
用 法: int feof(FILE *stream);
程序例:

#include <stdio.h> int main(void) { FILE *stream; /* open a file for reading */ stream = fopen("DUMMY.FIL", "r"); /* read a character from the file */ fgetc(stream); /* check for EOF */ if (feof(stream)) printf("We have reached end-of-file\n"); /* close the file */ fclose(stream); return 0; }


函數名: ferror
功 能: 檢測流上的錯誤
用 法: int ferror(FILE *stream);
程序例:

#include <stdio.h> int main(void) { FILE *stream; /* open a file for writing */ stream = fopen("DUMMY.FIL", "w"); /* force an error condition by attempting to read */ (void) getc(stream); if (ferror(stream)) /* test for an error on the stream */ { /* display an error message */ printf("Error reading from DUMMY.FIL\n"); /* reset the error and EOF indicators */ clearerr(stream); } fclose(stream); return 0; }


函數名: fflush
功 能: 清除一個流
用 法: int fflush(FILE *stream);
程序例:

#include <string.h> #include <stdio.h> #include <conio.h> #include <io.h> void flush(FILE *stream); int main(void) { FILE *stream; char msg[] = "This is a test"; /* create a file */ stream = fopen("DUMMY.FIL", "w"); /* write some data to the file */ fwrite(msg, strlen(msg), 1, stream); clrscr(); printf("Press any key to flush DUMMY.FIL:"); getch(); /* flush the data to DUMMY.FIL without closing it */ flush(stream); printf("\nFile was flushed, Press any key to quit:"); getch(); return 0; } void flush(FILE *stream) { int duphandle; /* flush the stream's internal buffer */ fflush(stream); /* make a duplicate file handle */ duphandle = dup(fileno(stream)); /* close the duplicate handle to flush the DOS buffer */ close(duphandle); }


函數名: fgetc
功 能: 從流中讀取字符
用 法: int fgetc(FILE *stream);
程序例:

#include <string.h> #include <stdio.h> #include <conio.h> int main(void) { FILE *stream; char string[] = "This is a test"; char ch; /* open a file for update */ stream = fopen("DUMMY.FIL", "w+"); /* write a string into the file */ fwrite(string, strlen(string), 1, stream); /* seek to the beginning of the file */ fseek(stream, 0, SEEK_SET); do { /* read a char from the file */ ch = fgetc(stream); /* display the character */ putch(ch); } while (ch != EOF); fclose(stream); return 0; }


函數名: fgetchar
功 能: 從流中讀取字符
用 法: int fgetchar(void);
程序例:

#include <stdio.h> int main(void) { char ch; /* prompt the user for input */ printf("Enter a character followed by <Enter>: "); /* read the character from stdin */ ch = fgetchar(); /* display what was read */ printf("The character read is: '%c'\n",ch); return 0; }


函數名: fgetpos
功 能: 取得當前文件的句柄
用 法: int fgetpos(FILE *stream);
程序例:

#include <string.h> #include <stdio.h> int main(void) { FILE *stream; char string[] = "This is a test"; fpos_t filepos; /* open a file for update */ stream = fopen("DUMMY.FIL", "w+"); /* write a string into the file */ fwrite(string, strlen(string), 1, stream); /* report the file pointer position */ fgetpos(stream, &filepos); printf("The file pointer is at byte %ld\n", filepos); fclose(stream); return 0; }


函數名: fgets
功 能: 從流中讀取一字符串
用 法: char *fgets(char *string, int n, FILE *stream);
程序例:

#include <string.h> #include <stdio.h> int main(void) { FILE *stream; char string[] = "This is a test"; char msg[20]; /* open a file for update */ stream = fopen("DUMMY.FIL", "w+"); /* write a string into the file */ fwrite(string, strlen(string), 1, stream); /* seek to the start of the file */ fseek(stream, 0, SEEK_SET); /* read a string from the file */ fgets(msg, strlen(string)+1, stream); /* display the string */ printf("%s", msg); fclose(stream); return 0; }


函數名: filelength
功 能: 取文件長度字節數
用 法: long filelength(int handle);
程序例:

#include <string.h> #include <stdio.h> #include <fcntl.h> #include <io.h> int main(void) { int handle; char buf[11] = "0123456789"; /* create a file containing 10 bytes */ handle = open("DUMMY.FIL", O_CREAT); write(handle, buf, strlen(buf)); /* display the size of the file */ printf("file length in bytes: %ld\n",filelength(handle)); /* close the file */ close(handle); return 0; }


函數名: fillellipse
功 能: 畫出並填充一橢圓
用 法: void far fillellipse(int x, int y, int xradius, int yradius);
程序例:

#include <graphics.h> #include <conio.h> int main(void) { int gdriver = DETECT, gmode; int xcenter, ycenter, i; initgraph(&gdriver,&gmode,""); xcenter = getmaxx() / 2; ycenter = getmaxy() / 2; for (i=0; i<13; i++) { setfillstyle(i,WHITE); fillellipse(xcenter,ycenter,100,50); getch(); } closegraph(); return 0; }


函數名: fillpoly
功 能: 畫並填充一個多邊形
用 法: void far fillpoly(int numpoints, int far *polypoints);
程序例:

#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int i, maxx, maxy; /* our polygon array */ int poly[8]; /* initialize graphics, local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } maxx = getmaxx(); maxy = getmaxy(); poly[0] = 20; /* 1st vertext */ poly[1] = maxy / 2; poly[2] = maxx - 20; /* 2nd */ poly[3] = 20; poly[4] = maxx - 50; /* 3rd */ poly[5] = maxy - 20; /* 4th vertex. fillpoly automatically closes the polygon. */ poly[6] = maxx / 2; poly[7] = maxy / 2; /* loop through the fill patterns */ for (i=EMPTY_FILL; i<USER_FILL; i++) { /* set fill pattern */ setfillstyle(i, getmaxcolor()); /* draw a filled polygon */ fillpoly(4, poly); getch(); } /* clean up */ closegraph(); return 0; }


函數名: findfirst, findnext
功 能: 搜索磁盤目錄; 取得下一個匹配的findfirst模式的文件
用 法: int findfirst(char *pathname, struct ffblk *ffblk, int attrib);
int findnext(struct ffblk *ffblk);
程序例:

/* findnext example */ #include <stdio.h> #include <dir.h> int main(void) { struct ffblk ffblk; int done; printf("Directory listing of *.*\n"); done = findfirst("*.*",&ffblk,0); while (!done) { printf(" %s\n", ffblk.ff_name); done = findnext(&ffblk); } return 0; }


函數名: floodfill
功 能: 填充一個有界區域
用 法: void far floodfill(int x, int y, int border);
程序例:

#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int maxx, maxy; /* initialize graphics, local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n",grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } maxx = getmaxx(); maxy = getmaxy(); /* select drawing color */ setcolor(getmaxcolor()); /* select fill color */ setfillstyle(SOLID_FILL, getmaxcolor()); /* draw a border around the screen */ rectangle(0, 0, maxx, maxy); /* draw some circles */ circle(maxx / 3, maxy /2, 50); circle(maxx / 2, 20, 100); circle(maxx-20, maxy-50, 75); circle(20, maxy-20, 25); /* wait for a key */ getch(); /* fill in bounded region */ floodfill(2, 2, getmaxcolor()); /* clean up */ getch(); closegraph(); return 0; }


函數名: floor
功 能: 向下舍入
用 法: double floor(double x);
程序例:

#include <stdio.h> #include <math.h> int main(void) { double number = 123.54; double down, up; down = floor(number); up = ceil(number); printf("original number %10.2lf\n",number); printf("number rounded down %10.2lf\n",down); printf("number rounded up %10.2lf\n",up); return 0; }


函數名: flushall
功 能: 清除所有緩衝區
用 法: int flushall(void);
程序例:

#include <stdio.h> int main(void) { FILE *stream; /* create a file */ stream = fopen("DUMMY.FIL", "w"); /* flush all open streams */ printf("%d streams were flushed.\n", flushall()); /* close the file */ fclose(stream); return 0; }


函數名: fmod
功 能: 計算x對y的模, 即x/y的餘數
用 法: double fmod(double x, double y);
程序例:

#include <stdio.h> #include <math.h> int main(void) { double x = 5.0, y = 2.0; double result; result = fmod(x,y); printf("The remainder of (%lf / %lf) is %lf\n", x, y,result); return 0; }


函數名: fnmerge
功 能: 建立新文件名
用 法: void fnerge(char *path, char *drive, char *dir);
程序例:

#include <string.h> #include <stdio.h> #include <dir.h> int main(void) { char s[MAXPATH]; char drive[MAXDRIVE]; char dir[MAXDIR]; char file[MAXFILE]; char ext[MAXEXT]; getcwd(s,MAXPATH); /* get the current working directory */ strcat(s,"\\"); /* append on a trailing character */ fnsplit(s,drive,dir,file,ext); /* split the string to separate elems */ strcpy(file,"DATA"); &
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章