SDLC
Difference between Website and Web Application
What is a Website? A website is a group of globally accessible, interlinked web pages which have a...
A File can be used to store a large volume of persistent data. Like many other languages 'C' provides following file management functions,
Following are the most important file management functions available in 'C,'
| function | purpose |
| fopen () | Creating a file or opening an existing file |
| fclose () | Closing a file |
| fprintf () | Writing a block of data to a file |
| fscanf () | Reading a block data from a file |
| getc () | Reads a single character from a file |
| putc () | Writes a single character to a file |
| getw () | Reads an integer from a file |
| putw () | Writing an integer to a file |
| fseek () | Sets the position of a file pointer to a specified location |
| ftell () | Returns the current position of a file pointer |
| rewind () | Sets the file pointer at the beginning of a file |
In this tutorial, you will learn-
Whenever you want to work with a file, the first step is to create a file. A file is nothing but space in a memory where data is stored.
To create a file in a 'C' program following syntax is used,
FILE *fp;
fp = fopen ("file_name", "mode");
In the above syntax, the file is a data structure which is defined in the standard library.
fopen is a standard function which is used to open a file.
fp is a file pointer which points to the type file.
Whenever you open or create a file, you have to specify what you are going to do with the file. A file in 'C' programming can be created or opened for reading/writing purposes. A mode is used to specify whether you want to open a file for any of the below-given purposes. Following are the different types of modes in 'C' programming which can be used while working with a file.
| File Mode | Description |
| r | Open a file for reading. If a file is in reading mode, then no data is deleted if a file is already present on a system. |
| w | Open a file for writing. If a file is in writing mode, then a new file is created if a file doesn't exist at all. If a file is already present on a system, then all the data inside the file is truncated, and it is opened for writing purposes. |
| a | Open a file in append mode. If a file is in append mode, then the file is opened. The content within the file doesn't change. |
| r+ | open for reading and writing from beginning |
| w+ | open for reading and writing, overwriting a file |
| a+ | open for reading and writing, appending to file |
In the given syntax, the filename and the mode are specified as strings hence they must always be enclosed within double quotes.
Example:
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen ("data.txt", "w");
}
Output:
File is created in the same folder where you have saved your code.
You can specify the path where you want to create your file
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen ("D://data.txt", "w");
}One should always close a file whenever the operations on file are over. It means the contents and links to the file are terminated. This prevents accidental damage to the file.
'C' provides the fclose function to perform file closing operation. The syntax of fclose is as follows,
fclose (file_pointer);
Example:
FILE *fp;
fp = fopen ("data.txt", "r");
fclose (fp);
The fclose function takes a file pointer as an argument. The file associated with the file pointer is then closed with the help of fclose function. It returns 0 if close was successful and EOF (end of file) if there is an error has occurred while file closing.
After closing the file, the same file pointer can also be used with other files.
In 'C' programming, files are automatically close when the program is terminated. Closing a file manually by writing fclose function is a good programming practice.
In C, when you write to a file, newline characters '\n' must be explicitly added.
The stdio library offers the necessary functions to write to a file:
The program below shows how to perform writing to a file:
#include <stdio.h>
int main() {
int i;
FILE * fptr;
char fn[50];
char str[] = "gtupapers Rocks\n";
fptr = fopen("fputc_test.txt", "w"); // "w" defines "writing mode"
for (i = 0; str[i] != '\n'; i++) {
/* write to file using fputc() function */
fputc(str[i], fptr);
}
fclose(fptr);
return 0;
}Output:
The above program writes a single character into the fputc_test.txt file until it reaches the next line symbol "\n" which indicates that the sentence was successfully written. The process is to take each character of the array and write it into the file.
#include <stdio.h>
int main() {
FILE * fp;
fp = fopen("fputs_test.txt", "w+");
fputs("This is gtupapers Tutorial on fputs,", fp);
fputs("We don't need to use for loop\n", fp);
fputs("Easier than fputc function\n", fp);
fclose(fp);
return (0);
}OUTPUT:
#include <stdio.h>
int main() {
FILE *fptr;
fptr = fopen("fprintf_test.txt", "w"); // "w" defines "writing mode"
/* write to file */
fprintf(fptr, "Learning C with gtupapers\n");
fclose(fptr);
return 0;
}OUTPUT:
There are three different functions dedicated to reading data from a file
The following program demonstrates reading from fputs_test.txt file using fgets(),fscanf() and fgetc () functions respectively :
#include <stdio.h>
int main() {
FILE * file_pointer;
char buffer[30], c;
file_pointer = fopen("fprintf_test.txt", "r");
printf("----read a line----\n");
fgets(buffer, 50, file_pointer);
printf("%s\n", buffer);
printf("----read and parse data----\n");
file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointer
char str1[10], str2[2], str3[20], str4[2];
fscanf(file_pointer, "%s %s %s %s", str1, str2, str3, str4);
printf("Read String1 |%s|\n", str1);
printf("Read String2 |%s|\n", str2);
printf("Read String3 |%s|\n", str3);
printf("Read String4 |%s|\n", str4);
printf("----read the entire file----\n");
file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointer
while ((c = getc(file_pointer)) != EOF) printf("%c", c);
fclose(file_pointer);
return 0;
}Result:
----read a line---- Learning C with gtupapers ----read and parse data---- Read String1 |Learning| Read String2 |C| Read String3 |with| Read String4 |gtupapers| ----read the entire file---- Learning C with gtupapers
These are the simplest file operations. Getc stands for get character, and putc stands for put character. These two functions are used to handle only a single character at a time.
Following program demonstrates the file handling functions in 'C' programming:
#include <stdio.h>
int main() {
FILE * fp;
char c;
printf("File Handling\n");
//open a file
fp = fopen("demo.txt", "w");
//writing operation
while ((c = getchar()) != EOF) {
putc(c, fp);
}
//close file
fclose(fp);
printf("Data Entered:\n");
//reading
fp = fopen("demo.txt", "r");
while ((c = getc(fp)) != EOF) {
printf("%c", c);
}
fclose(fp);
return 0;
}
Output:
Summary
What is a Website? A website is a group of globally accessible, interlinked web pages which have a...
This tutorial aims at introducing the apply() function collection. The apply() function is the...
What is a File system? File system is a collection of algorithms and data structures that perform the...
What is Linux? LINUX is an operating system or a kernel distributed under an open-source license....
Audio Recording Software are programs designed to record any sound. These applications allow...
What is Variable? A variable is a concept or theoretical idea which can be described in measurable terms....