компилировать код затем запустить его, но он возвращает «Ошибка записи зашифрованных данных в файл. Таким образом, я предполагаю, что этот вопрос находится где-то в FWRITE.Шифрование код не записывает обратно в файл
Но я не могу точно определить его .
мне нужна помощь здесь, если вы могли бы объяснить проблему, что было бы очень полезно, спасибо много
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int encrypt_data(FILE *);
int main(void)
{
FILE *fp;
int return_code;
printf("Please enter the file to be encrypted: ");
char filename[200];
scanf("%s", filename);
fp=fopen(filename,"r");
return_code = encrypt_data(fp);
return 0;
}
int encrypt_data(FILE *disk_fp)
{
int i;
unsigned long int file_size;
int key_length;
char *file_buff = NULL;
char key[] = "12`3-vk0fn";
key_length = strlen(key);
fseek(disk_fp, 0, SEEK_END);
file_size = ftell(disk_fp);
rewind(disk_fp);
file_buff = malloc(file_size);
if(fread(file_buff, file_size, 1, disk_fp) != 1)
{
printf("Error in reading file\n");
return -1;
}
for(i=0; i<file_size; i++)
{
file_buff[i] = file_buff[i]^key[i%key_length];
}
rewind(disk_fp);
if(fwrite(file_buff, file_size, 1, disk_fp) != 1)
{
printf("Error in writing encrypted data to file\n");
return -1;
}
free(file_buff);
fclose(disk_fp);
return 0;
}
Почему вы ожидаете, что возвращаемое значение 'fwrite' будет 1? –
Очень почти дубликат [Нужно зашифровать файл, у меня все написано, но ошибка в файле чтения) (http://stackoverflow.com/questions/20365298/need-to-encrypt-a-file-i-have- это все-списанный, но ошибки в-чтения-файл). – duskwuff
Если вы когда-нибудь задавались вопросом, почему системный вызов завершается неудачно, попробуйте сообщить системе. Вместо 'printf (« мое неоднозначное сообщение об ошибке »)', попробуйте 'perror (« fwrite »)' –