This is a C program that reads a text file and displays its content on to screen.
Assumptions
- The name of the file to be read is passed as an argument when the program is executed.
Key Steps
- Validates if a filename has been entered, if not display error message and exit the program.
- Open the file for read only, using
fopen
function, and store the return value to a file pointer variable. - If file opened successfully then continue next steps, otherwise display error message and exit.
- Using
fgetc
function, read the characters from the file one by one until End Of File. - Print the character that is read to standard output, which is the display screen.
Program Source
(Filename: read-file.c)
/*************************************************** * This program reads a file specified by the user * * as a command line argument and display the * * contents of the file on screen. * ***************************************************/ #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp; char *filename; char ch; // Check if a filename has been specified in the command if (argc < 2) { printf("Missing Filename\n"); return(1); } else { filename = argv[1]; printf("Filename : %s\n", filename); } // Open file in read-only mode fp = fopen(filename,"r"); // If file opened successfully, then print the contents if ( fp ) { printf("File contents:\n"); while ( (ch = fgetc(fp)) != EOF ) { printf("%c",ch); } } else { printf("Failed to open the file\n"); } return(0); }
Program Input
(Input File : myfile.txt)
The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs.
Compile and Run
Compile the program and run the executable with the input filename as argument
./read-file.exe myfile.txt
Program Output
Filename : myfile.txt File contents: The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs.