1

XOR 演算子と単純な 1 文字のキー暗号化をいじり始めて以来、これまで見たことのない問題が発生しています。プログラムを 2 回目に実行した後、テキストの末尾には常にランダムな ASCII 文字が含まれます。もう 1 つの問題は、「事前注文」と「事後注文」というテキストが、プログラムの反復ごとに交互に変更されることです。これのほとんどは単純に初心者のミスによるものであり、特にこれらの問題が発生する方法での IO の経験不足によるものだと確信しています。

#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();
}
4

1 に答える 1