У меня проблемы, которых я никогда раньше не видел, так как я начал возиться с оператором XOR и простым шифрованием с помощью односимвольного ключа. Текст всегда имеет случайный символ ascii в конце после того, как он проходит через программу во второй раз. Другая проблема заключается в том, что тексты «Предзаказ» и «Постзаказ» изменяются поочередно после каждой итерации программы. Я уверен, что большая часть этого просто из-за ошибок новичков, особенно из-за отсутствия опыта работы с вводом-выводом в том, как появляются эти проблемы.
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream ifile;
ofstream ofile;
string toProc;
string file;
char key = ' ';
cout << "Enter file location: \n";
cin >> file;
cout << "Enter key: \n";
cin >> key;
ifile.open(file);
if(ifile.is_open())
{
char temp;
temp = ifile.get();
toProc.push_back(temp);
while(ifile.good())
{
temp = ifile.get();
toProc.push_back(temp);
}
ifile.close();
}
else
{
cout << "No file found.\n";
}
cout << "Pre action: " << toProc << endl;
for(int i = 0; i < toProc.size(); i++)
toProc[i] ^= key;
cout << "Post action: " << toProc << endl;
ofile.open(file);
ofile << toProc;
ofile.close();
}