|
Turbo C 2.0、Borland C++库函数及用例(26) } 函数名: 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);
|