Here study this... it should give you some ideas...
Code:
// file encrypt and decrypt example
// encrypt and dectypt using char + key * 2
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{ char crypt; // encryption key
short fval; // file values
FILE *infile, *outfile;
if(argc < 4)
{ printf("File encryptor/dectyptor...\n");
printf("Encrypt or decrypt a file based based on a secret method\n\n");
printf("Usage : \n");
printf(" crypt <key> <sourcefile> <outputfile>\n\n");
printf("Key :\n");
printf(" To encrypt enter a single character as your encryption key\n");
printf(" To decrypt enter * as the key\n\n");
printf("Examples :\n");
printf(" crypt x mywork.txt safework.txt\n");
printf(" crypt * safework.txt homework.txt\n\n");
exit(255); }
// open the files
infile = fopen(argv[2],"rb");
if (! infile)
{ printf("Unable to open input file\n\n");
exit(254); }
outfile = fopen(argv[3],"wb");
if (! outfile)
{ printf("Unable to open output file\n\n");
exit(253); }
// active encryptor
if ((argv[1][0] == '*'))
{ printf("Decrypting...\n\n");
// first value in the file is the key
if ( fread(&crypt, sizeof(char), 1, infile) )
{ crypt = ~crypt;
while( fread(&fval ,sizeof(short), 1, infile) )
fputc( (fval / 2) - crypt, outfile ); } }
else
{ printf("Encrypting...\n\n");
// set key as first value in file}
crypt = ~argv[1][0];
fwrite(&crypt, sizeof(char), 1, outfile);
while( (fval = fgetc(infile)) > 0 )
{ fval = (fval + argv[1][0]) * 2;
fwrite(&fval,sizeof(short),1,outfile); } }
fclose(infile);
fclose(outfile);
printf("Done...\n\n\n");
return 0; }
and here it is encrypting it's own source code...
¾à à  NTZL L^Hftbj D^J JLHftbj LrD\bZLœ – à à  L^Hftbj D^J JLHjtbj lhT^P HRDfÂ Ø Â XLtÂ Ö Â æ  œ – È T^HZlJL ú hjJT`Þ Rþ œ – È T^HZlJL ú hjJZTFÞ Rþ œ – œ – T^j \DT^Â Ò T^j DfPHÚ Â HRDfÂ Ö DfPn8<Ô œ –   x T^j Hftbjø   à à  L^HftbjT`^ XLtœ –     T^j NnDZø    à à  NTZL nDZlLhœ – Â Â Â Â Â Ö T^NTZLÚ Â Ö `ljNTZLø œ –   œ –     TNÒ DfPH ú  ê Ô œ –       x bfT^jNÒ Æ TZL L^Hftbj`fà JLHjtbj`fÞ Þ Þ :^Æ Ô ø œ –         bfT^jNÒ Æ ^Hftbj `f JLHftbj D NTZL FDhLJ FDhLJ `^ D hLHfLj \LjR`J:^:^Æ Ô ø œ –         bfT^jNÒ Æ ,hDPL ö  :^Æ Ô ø œ –         bfT^jNÒ Æ Â Â Â Â Â Hftbj ú XLtþ  ú h`lfHLNTZLþ  ú `ljbljNTZLþ :^:^Æ Ô ø œ –         bfT^jNÒ Æ Lt ö :^Æ Ô ø œ –         bfT^jNÒ Æ Â Â Â *` L^Hftbj L^jLf D hT^PZL HRDfDHjLf Dh t`lf L^HftbjT`^ XLt:^Æ Ô ø œ –         bfT^jNÒ Æ Â Â Â *` JLHftbj L^jLfÂ Ö Â Dh jRL XLt:^:^Æ Ô ø œ –         bfT^jNÒ Æ rD\bZLh ö :^Æ Ô ø œ –         bfT^jNÒ Æ Â Â Â Â Â Hftbj r \tp`fXÞ jrj hDNLp`fXÞ jrj:^Æ Ô ø œ –         bfT^jNÒ Æ Â Â Â Â Â HftbjÂ Ö Â hDNLp`fXÞ jrj R`\Lp`fXÞ jrj:^:^Æ Ô ø œ –         LrTjÒ æ ì ì Ô ø  |œ – œ –     à à  `bL^ jRL NTZLhœ –     T^NTZL ü  N`bL^Ò DfPn8æ <Ú Æ fÆ Ô ø œ –     TNÂ Ò Ä Â T^NTZLÔ œ –       x bfT^jNÒ Æ ,^DFZL j` `bL^ T^blj NTZL:^:^Æ Ô ø œ –         LrTjÒ æ ì ê Ô ø  |œ – œ –     `ljNTZL ü  N`bL^Ò DfPn8è <Ú Æ pÆ Ô ø œ –     TNÂ Ò Ä Â `ljNTZLÔ œ –       x bfT^jNÒ Æ ,^DFZL j` `bL^ `ljblj NTZL:^:^Æ Ô ø œ –         LrTjÒ æ ì è Ô ø  |œ – œ –     à à  DHjTnL L^Hftbj`f     œ –     TNÂ Ò Ò DfPn8ä <8â < ü ü Â Ð Ö Ð Ô Ô œ –       x bfT^jNÒ Æ
LHftbjT^PÞ Þ Þ :^:^Æ Ô ø œ –         à à  NTfhj nDZlL T^ jRL NTZL Th jRL XLtœ –         TNÂ Ò Â NhHD^NÒ T^NTZLÚ Æ Ì JÆ Ú Î HftbjÔ Â þ  â Ô œ –           pRTZLÒ NhHD^NÒ T^NTZLÚ Æ Ì JÆ Ú Î NnDZÔ Â þ  â Ô œ –             NbljHÒ Ò NnDZà æ Ô Â Ü Â HftbjÚ `ljNTZLÔ ø   |œ –     LZhLœ –       x bfT^jNÒ Æ ^HftbjT^PÞ Þ Þ :^:^Æ Ô ø œ –         à à  hLj XLt Dh NTfhj nDZlL T^ NTZL|    œ –         NbfT^jNÒ `ljNTZLÚ Æ Ì JÂ Æ Ú DfPn8ä <8â <Ô ø œ –         pRTZLÒ Â Ò NnDZ ü  NPLjHÒ T^NTZLÔ Ô Â þ  â Â Ô œ –           NbfT^jNÒ `ljNTZLÚ Æ Ì JÂ Æ Ú Â Ò NnDZÂ Ø Â DfPn8ä <8â <Ô Â Ö Â æ Ô ø  |œ –         œ –     NHZ`hLÒ T^NTZLÔ ø œ –     NHZ`hLÒ `ljNTZLÔ ø œ – œ –     bfT^jNÒ Æ
`^LÞ Þ Þ :^:^:^Æ Ô ø     œ –     fLjlf^ â ø  |œ – œ – œ –