0
ファイルを暗号化するためにC++ファイルストリームを使用しました。 補完を使用してファイルを暗号化する
ifstream input("Normal file");
ofstream output("encrypted file");
char ch;
while (input >> ch)
{
ch = ~ch;
output << ch;
}
は私が
暗号化されたファイルから
通常のファイルを回復するために、同じプログラムを使用:この中で、読んですべての文字は、1つの補完し、出力ファイルに書かれています。しかし、暗号化されていないファイルには空白やリターンマークがないことがわかりました。そこで、私はwhile部分を次のように変更しました:
while (input >> ch)
{
ch = isspace(ch) ? ch : ~ch;
output << ch;
}
結果が私の予想した結果ではありません。どこで私は間違えましたか?
あなたは何を期待しましたか?あなたはそれについて説明できますか? –
主な問題点の1つは、入出力演算子 '>>'と '<<'は基本的には*テキスト関数です。ビット補完を行うと、一部の文字が「テキスト」として表示されなくなることがあります。バイナリファイルやその他の関数を使用してデータを読み書きします。 –
空白文字を読み込むために 'input.get()'を試してください。 – James