1

私が楽しみのために作成している暗号化プロジェクトの一環として、PDF、DOCX、JPEG、任意の ASCII ファイルなどのファイルの内容を取得し、数値で文字をいじってから、最後にプロセスを逆にしたいと思います。通常どおり開くことができる元のファイルタイプのファイルを提供します。

まず、テストを行ったときに、.docx ファイルの内容を文字列に読み取り、それを別の名前の別の .docx ファイルに直接書き込むと考えました。ただし、これが行われると、Microsoft Word はファイルを開くことを拒否します:「ファイルが壊れているため、開くことができません」。

ファイルをコピーするために使用したコードは次のとおりです。

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream inputFile("C:\\Users\\MyUser\\Documents\\This is a test.docx", ios::in | ios::binary);
    inputFile.seekg(0, ios::end);
    int length = inputFile.tellg();
    inputFile.seekg(0, ios::beg);
    string fileContents;
    fileContents.resize(length);
    inputFile.read(&fileContents[0], length);
    inputFile.close();

    ofstream outputFile("C:\\Users\\MyUser\\Documents\\TestCopy.docx", ios::app);
    outputFile.write(&fileContents[0], length);
    outputFile.close();


    cout << "Complete.";
    int n;
    cin >> n; //Keeps the program open so message can be read.
}

何が問題で、どのようにプログラムを編集して有効なファイルを作成できますか?

事前に乾杯。

4

2 に答える 2