ファイルからバイトを読み取ってから、それらを書き換えたかったのです。私はそうしました:
FILE *fp;
int cCurrent;
long currentPos;
/* check if the file is openable */
if( (fp = fopen(szFileName, "r+")) != NULL )
{
/* loop for each byte in the file crypt and rewrite */
while(cCurrent != EOF)
{
/* save current position */
currentPos = ftell(fp);
/* get the current byte */
cCurrent = fgetc(fp);
/* XOR it */
cCurrent ^= 0x10;
/* take the position indicator back to the last position */
fseek(fp, currentPos, SEEK_SET);
/* set the current byte */
fputc(cCurrent, fp);
}
ファイルでコードを実行した後、無限ループ内でファイルのサイズが増加しています。
私のコードの問題は何ですか?