w3resource

C Exercises: Decrypt a previously encrypted file

C File Handling : Exercise-14 with Solution

Write a program in C to decrypt a previously encrypted file.

 Assume that, the content of the file test.txt was  :                                                                       
������Ʉ�ӄۗ�������ɒ��ђn

Sample Solution:

C Code:

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

void main()
{
	char ch, fname[20];
	FILE *fpts, *fptt;
	
	printf("\n\n Decrypt a text file :\n");
	printf("--------------------------\n"); 	
	
	printf(" Input the name of file to decrypt : ");
	scanf("%s",fname);	
	
	fpts=fopen(fname, "w");
	if(fpts==NULL)
	{
		printf(" File does not exists or error in opening..!!");
		exit(7);
	}
	fptt=fopen("temp.txt", "r");
	if(fptt==NULL)
	{
		printf(" File does not exists or error in opening..!!");
		fclose(fpts);
		exit(9);
	}
	while(1)
	{
		ch=fgetc(fptt);
		if(ch==EOF)
		{
			break;
		}
		else
		{
			ch=ch-100;
			fputc(ch, fpts);
		}
	}
	printf(" The file %s decrypted successfully..!!\n\n",fname);
	fclose(fpts);
	fclose(fptt);
}

Sample Output:

 Decrypt a text file :                                                                                        
--------------------------                                                                                    
 Input the name of file to decrypt : test.txt                                                                 
 The file test.txt decrypted successfully..!! 
After decrypt, the content of the file is : 
Welcome to w3resource.com.

Flowchart:

Flowchart: Decrypt a previously encrypted file

C Programming Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a program in C to encrypt a text file.
Next: Write a program in C to remove a file from the disk.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



C Programming: Tips of the Day

What is the size of an enum in c?

An enum is only guaranteed to be large enough to hold int values. The compiler is free to choose the actual type used based on the enumeration constants defined so it can choose a smaller type if it can represent the values you define. If you need enumeration constants that don't fit into an int you will need to use compiler-specific extensions to do so.

Ref : https://bit.ly/3ypg4k8