GVA SUPPORT

Відповідь на запитання № 1306262545
Text:
	ФІО = Пінчук Олександр

 Запитання:/*
  шифратор-дешифратор з допомогою ключа (вводиться з клавіатури) і файлу ^(xor)
чи щось таке в усякому разі я так зрозумів
-> дописує лишній символ + можуть бути якісь помолки... але ідея правильна
*/
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <cstring>
#define n 1000
using namespace std;
int main(){
    FILE *f1, *f2;
    f1 = fopen("pin_xor.in","rb");
    f2 = fopen("pin_xor.out","wb");    
    char c=0;// сюди будуть записуватись зчитані символи
    unsigned long count=0; // лічильник
    char mas[n]; // це масив символів (для ключа)
    cout<<" Enter KEY (for XOR) : ";
    cin>>&mas[0]; // вводимо ключ
    cout<<" -> "<<(&mas[0])<<endl;    // виводимо ключ
    int len=strlen(&mas[0]); // довжина ключа
    cout<<" ->"<<strlen(&mas[0])<<endl;
    if ((f1) && (f2)){   // якщо нормально відкрили файли, то починаємо
       int i=0;// ітератор
       while ( !feof(f1) ) // поки не зчитаємо весь перший файл
       {
        
             fscanf(f1,"%c",&c);               // читаємо
             fprintf(f2,"%c",c^mas[i]);        // пишемо з ксором
//             cout<<int (c)<<" - "<<int (mas[i])<<" = "<<int (c^mas[i])<<endl;
             i=(i+1)%len;                      // робимо ефект лічильника, щоб ітератор не залазив за межі
       } 


       fclose(f1);
       fclose(f2);
     } else {cout<<" Error at file1 or file2"<<endl;}
    system("PAUSE");
    return 0;
}




====================================	
Ваша відповідь