/* ** File FILE_1.C ** ** Illustrates how to write to a file. ** ** Calculates natural log of numbers between points entered by user. ** output is written to crt using printf and to file out.lis ** using fprintf. ** ** Note that the specific lines used to accomplish this are ** identified thus; /*****1*****//* and the following explanation ** is keyed to these numbers. ** ** 1. fprintf is defined in** 2. pointer to a file declared. You need not understand. ** ** 3. file named out.lis opened at beginning of program. ** all subsequent fprintf is written to this file. ** 4. printf still directs to the crt. fprintf of very ** similar structure directs to the file. ** 5. file must be closed prior to exiting the routine. ** ** Peter H. Anderson, 2 Feb, 97 */ #include <stdio.h> /****1****/ #include <process.h> /* for system command */ #include <conio.h> /* for clrscr */ #include <dos.h> /* for delay */ #include <math.h> FILE *f1; /****2****/ main() { int n; float x, y, start_point, end_point; clrscr(); f1 = fopen ("out.lis", "wt"); /****3****/ /* out.lis is the name of the file */ /* "wt" means the file is a write only text file */ printf ("Enter Start and End Points: "); scanf ("%f %f", &start_point, &end_point); /* should have error checking for negative numbers, zero and that end_point > start point */ for (n = 0; n<20; ++n) { x = start_point + (end_point - start_point) *n/20; y = (float) log ((float) x); /* note type cast */ printf ("%f\t%f\n", x, y); fprintf (f1, "%f\t%f\n", x, y); /****4****/ } /*of for*/ fclose (f1); /****5*****/ delay(1000); clrscr(); system("type out.lis"); /* list the file to the screen */ /* illustrates the system command */ } /*of main*/ /* Note that the form of the fprintf is the same as the printf, with one exception, the fprintf includes a destination; fprintf (f1, "........."); */