codescracker
c

C Program to Write Data into a File



« Previous Program Next Program »

In this article, you will learn and get code on writing some data into a file inside the current directory.

The function fopen() is used to open the file. It takes two argument, the first one is the name of file, and the second one is its opening mode. To write some data into a file, we have to use w file opening mode. For example,

fopen("codescracker.txt", "w");

Opens a file named codescracker.txt in writing mode.

What if File doesn't Exist ?

While opening the file using w file opening mode, if file doesn't exist, then a new file gets created. Therefore, using the above statement, if the file codescracker.txt does not exist inside the current directory, then it gets created. The current directory means, the directory or folder where you are saving your C programs. Or the folder in which the program of writing data into a file is saved.

Write Data into File in C

The question is, write a program in C to ask from user to enter the name of file to open the file and then again ask to enter the data to store inside the file. The answer to this question is:

#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    char data[200], fname[30];
    FILE *fp;
    printf("Enter a File Name to Open/Create: ");
    gets(fname);
    fp = fopen(fname, "w");
    if(fp==NULL)
        printf("Error Occurred while Opening/Creating the File!");
    else
    {
        printf("\nEnter the Data: ");
        gets(data);
        while(strlen(data)>0)
        {
            fputs(data, fp);
            fputs("\n", fp);
            gets(data);
        }
    }
    fclose(fp);
    getch();
    return 0;
}

This program was build and run under Code::Blocks IDE. Here is its sample run:

c program to write to file

Enter the name of file say codescracker.txt and press ENTER key. If the file entered by you say codescracker.txt doesn't exist inside the current directory, then it gets created there. The current directory means, the directory where you have saved your program given above. Now enter some data one by one in a way that, if you wants to enter the data of 3 lines, then enter like:

Every time entering the new line or new sentence, press ENTER. If you want to stop writing data into the file, then just press ENTER key without writing anything before it. Here is its sample run:

write data into file c

As you can see, I've written three lines of data, therefore a file named codescracker.txt gets created inside the current directory and that file contains:

c program write data into file

Modified Version

Here is the modified version of above program. This program prints message one by one that assures user, what is going inside the program. Like, if user enters a file that does not exist, then a new file gets created. But before creating the file, this program prints a message like a new file is creating... and all like these messages:

#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    char data[200], fname[30];
    FILE *fp;
    printf("Enter the Name of File to Open/Create: ");
    gets(fname);
    fp = fopen(fname, "r");
    if(fp==NULL)
    {
        printf("\nFile Doesn't Exist!");
        printf("\n\nCreating the File...\n");
        fp = fopen(fname, "w");
        if(fp==NULL)
            printf("\nError occurred while creating the file..");
        else
            printf("\nFile Created Successfully!\n");
    }
    fclose(fp);
    fp = fopen(fname, "w");
    if(fp==NULL)
        printf("\nError occurred while opening the file..");
    else
    {
        printf("\nEnter the Data: ");
        gets(data);
        while(strlen(data)>0)
        {
            fputs(data, fp);
            fputs("\n", fp);
            gets(data);
        }
        printf("\nData is Written into the File Successfully!");
        printf("\nPress any Key to Exit...");
    }
    fclose(fp);
    getch();
    return 0;
}

Let's suppose user enters a file named codescracker.html, that does not exist inside the current directory. Now the sample run of above program goes like. This is the initial output:

write data to file in c

Now enter the name of file say codescracker.html and press ENTER key. Because, this file is not available in the current folder, therefore a new file gets created and here is the sample output you will see:

c program write data to file

Now enter the following data to write it into the file codescracker.html:

<h1>About Me</h1>
<p>Hello There.</p>
<p>This is an HTML Document.</p>
<p>The name of this file is <u>codescracker.html</u>.</p>

The above data must be entered in a way that, first enter first line, that is:

<h1>About Me</h1>

and press ENTER key, again enter second line, that is:

<p>Hello There.</p>

and again press ENTER key. In similar way, enter the next two lines. Here is the sample output:

c write content to file

After entering all the four lines of data, press ENTER without typing anything to stop writing the data into the file. Here is the output, you will see after doing it:

write content to file c

Now press any key to exit the program. Here is the snapshot that shows the file codescracker.html gets created inside the current folder:

data written to file c

Because, it is a file with .html extension, then if you will open this file in a web browser like Google Chrome, it shows:

file created with content c

To learn about HTML in detail, then follow the separate tutorial on it.

Same Program in Other Languages

C Online Test


« Previous Program Next Program »



© Copyright 2021. All Rights Reserved.

CodesCracker