w3resource logo


C Programming Exercises

C Exercises: Copy a file in another name

Secondary Nav

C File Handling : Exercise-11 with Solution

Write a program in C to copy a file in another name.

Assume that the content of the file test.txt is :                                                                       
test line 1                                                                                                   
test line 2                                                                                                   
test line 3                                                                                                   
test line 4                                                                                                   

Test Data :
Input the source file name : test.txt
Input the new file name : test1.txt
Expected Output :

 The file test.txt  copied successfully in the file test1.txt.

If you read the new file you will see the content of the file :

test line 1                                                                                                   
test line 2                                                                                                   
test line 3                                                                                                   
test line 4 

C Code:

#include <stdio.h>
#include <stdlib.h>

void main()
{
	FILE *fptr1, *fptr2;
	char ch, fname1[20], fname2[20];

	printf("\n\n Copy a file in another name :\n");
	printf("----------------------------------\n"); 

	printf(" Input the source file name : ");
	scanf("%s",fname1);

	fptr1=fopen(fname1, "r");
	if(fptr1==NULL)
	{
		printf(" File does not found or error in opening.!!");
		exit(1);
	}
	printf(" Input the new file name : ");
	scanf("%s",fname2);
	fptr2=fopen(fname2, "w");
	if(fptr2==NULL)
	{
		printf(" File does not found or error in opening.!!");
		fclose(fptr1);
		exit(2);
	}
	while(1)
	{
		ch=fgetc(fptr1);
		if(ch==EOF)
		{
			break;
		}
		else
		{
			fputc(ch, fptr2);
		}
	}
	printf(" The file %s  copied successfully in the file %s. \n\n",fname1,fname2);
	fclose(fptr1);
	fclose(fptr2);
	getchar();
}

Flowchart :

Flowchart: Copy a file in another name

C Practice online:


#include <stdio.h>
#include <stdlib.h>

void main()
{
	FILE *fptr1, *fptr2;
	char ch, fname1[20], fname2[20];

	printf("\n\n Copy a file in another name :\n");
	printf("----------------------------------\n"); 

	printf(" Input the source file name : ");
	scanf("%s",fname1);

	fptr1=fopen(fname1, "r");
	if(fptr1==NULL)
	{
		printf(" File does not found or error in opening.!!");
		exit(1);
	}
	printf(" Input the new file name : ");
	scanf("%s",fname2);
	fptr2=fopen(fname2, "w");
	if(fptr2==NULL)
	{
		printf(" File does not found or error in opening.!!");
		fclose(fptr1);
		exit(2);
	}
	while(1)
	{
		ch=fgetc(fptr1);
		if(ch==EOF)
		{
			break;
		}
		else
		{
			fputc(ch, fptr2);
		}
	}
	printf(" The file %s  copied successfully in the file %s. \n\n",fname1,fname2);
	fclose(fptr1);
	fclose(fptr2);
	getchar();
}

Improve this sample solution and post your code through Disqus.



Join our Question Answer community to learn and share your programming knowledge.

Solve these problems:

Python: How to check whether a file exists using Python?

C#: Loops in c#

PHP: For each

SQL: JOIN using more than 5 tables

JavaScript: Blank Slide in Javascript Slideshow