#include <stdio.h>
#include <string.h>
#include <cstdlib>
const int KEY=118;
int main()
{
FILE* hOFile = fopen("file1","w");
FILE* hIFile;
char sign;
for(int i=254; i>=0; i--)
fprintf(hOFile,"%c",i);
fclose(hOFile);
hIFile = fopen("file1","r");
hOFile = fopen("file2","w");
for(int i=254; i>=0; i--)
{
fscanf(hIFile,"%c",&sign);
fprintf(hOFile,"%c",(sign^KEY));
}
fclose(hIFile);
fclose(hOFile);
hIFile=fopen("file2","r");
hOFile=fopen("file3","w");
for(int i=254; i>=0; i--)
{
fscanf(hIFile,"%c",&sign);
fprintf(hOFile,"%c",(sign^KEY));
}
fclose(hIFile);
fclose(hOFile);
}
I meant that file3 to be identical with file1. Unfortunately, file3 crashes after ASCII KEY-9 character.To be specific, for this example:
File1:
ţýüűúůř÷öőôóňńđďîíěëęéčçćĺäăâáŕßŢÝÜŰÚŮŘ×ÖŐÔÓŇŃĐĎÎÍĚËĘÉČÇĆĹÄĂÂÁŔżľ˝Ľ»şą¸·¶µ´ł˛±°Ż®¬«Ş©¨§¦Ą¤Ł˘ˇ źžťś›š™—–•”“’‘ŹŽŤŚ‹Š‰‡†…„‚€~}|{zyxwvutsrqponmlkjihgfedcba`_^][ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)(‘&%$#”!
File3:
ţýüűúůř÷öőôóňńđďîíěëęéčçćĺäăâáŕßŢÝÜŰÚŮŘ×ÖŐÔÓŇŃĐĎÎÍĚËĘÉČÇĆĹÄĂÂÁŔżľ˝Ľ»şą¸·¶µ´ł˛±°Ż®¬«Ş©¨§¦Ą¤Ł˘ˇ źžťś›š™—–•”“’‘ŹŽŤŚ‹Š‰‡†…„‚€~}|{zyxwvutsrqponmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
You have to open the files in read-binary mode (
rb, notr) and write-binary mode (wb, not justw), or the system will try to do some conversions for you which you don’t want.