1
私はCで暗号化に干渉してきました。単純な代用暗号を使用していましたが、次のコードで問題が発生しました。プログラムは円滑に実行されますが、テキストファイル "Message"の内容は常に同じテキストに変更されます:C=Øžû†
。私は、ファイル内の文字列のすべての文字をランダムな文字に変更したいと考えていました。Cプログラムの同じテキストを私に与える代用暗号
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <type.h>
#include <string.h>
const int MAXSIZE = 50;
void Encrypt(FILE *File, char file[MAXSIZE], int i, int j)
{
File = fopen("message.txt", "r+");
for (i = 0; i < 6; i++)
{
file[i] = rand() + 26;
fputc(file[i], File);
}
printf("%s", file);
fclose(File);
return;
}
int main()
{
int i = 0;
int j = 0;
char file[MAXSIZE];
FILE *File = 0;
Encrypt(File, file, i, j);
system("pause");
return 0;
}
必要[srand関数(http://en.cppreference.com/w/c/numeric:その出力は以下のようになります/ランダム/ srand)? – BLUEPIXY
知っておく必要があることがいくつかあります:最初に、関数内でローカルにする必要がある変数に引数を使用する必要はありません。 2番目のことは、[* seeding *](http://en.cppreference.com/w/c/numeric/random/srand)がなければ、常に同じ "ランダムな"数字が得られることです。 3番目は、ファイル内の何かを置き換えないことです。ファイルの内容を無条件に上書きするだけです。最後に、 "乱数"を使用するとファイルを解読することは不可能*になります。あなたは元の文字を取り戻すためにどのような値を引くべきかをどのように知っていますか? –
全体として、私はあなたがいくつかのステップを取り戻す必要があると思う[いくつかの良い初心者の本を得る](http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-リスト)を開き、やり直してください。 –