對於我必須做的實驗,我需要創建一個程序,它將從文本文件中獲取一個簡單的字符串,並使用一個鍵進行加密 - 一個介於0和255之間的數字。它將讀取將該文件轉換爲數組,並通過將每個字節與密鑰異或來將該數組加密(或解密)爲另一個數組。最後,它將修改後的數組寫入第二個文件。加密一個簡單的數組
我主要得到它 - 我在下面編譯得很好。但是,它不會將任何內容複製到第二個文件。幫幫我!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define CRYPT(a, b) (a^b)
int main(int argc, char *argv[])
{
FILE *fp1, *fp2;
int a[100], b, key;
int i = 0;
// opens file containing string to be encrypted
if((fp1 = fopen(argv[2], "rb")) == NULL)
{
printf("Error - could not open file or file does not exist\n");
return;
}
// opens file encrypted string will be saved to
fp2 = fopen(argv[3], "wb");
// converts string to integer
key = atoi(argv[1]);
while(fread(a, sizeof(a), 100, fp1))
{
while (i != '\0');
{
b = CRYPT(a[i], key);
fwrite(&b, sizeof(a), 1, fp2);
i++;
}
}
return 0;
}
啊,我把它改成'while(!feof(fp1));',但這仍然沒有任何幫助。 – 2012-03-18 06:53:19
另外,在該行末尾的額外分號並沒有幫助... – 2012-03-18 06:54:46
@ ThomasPadron-McCarthy:好! – 2012-03-18 06:55:51