私は、cで代替暗号を作成して、テキストファイルから文字を読み取り、暗号化します。ただし、プログラムを実行すると、ファイル内のテキストは暗号化されません。しかし、私は正確に何が欠けているのか分かりません。すべての助けをいただければ幸いです。C Substitution Cipher
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void encrypt(char *inchar)
{
while (*inchar)
{
if (isalpha(*inchar) && isupper(*inchar))
{
if (*inchar == 'A') {*inchar = 'G';}
if (*inchar == 'B') {*inchar = 'H';}
if (*inchar == 'C') {*inchar = 'B';}
if (*inchar == 'D') {*inchar = 'I';}
if (*inchar == 'E') {*inchar = 'A';}
if (*inchar == 'F') {*inchar = 'L';}
if (*inchar == 'G') {*inchar = 'U';}
if (*inchar == 'H') {*inchar = 'F';}
if (*inchar == 'I') {*inchar = 'P';}
if (*inchar == 'J') {*inchar = 'J';}
if (*inchar == 'K') {*inchar = 'K';}
if (*inchar == 'L') {*inchar = 'T';}
if (*inchar == 'M') {*inchar = 'V';}
if (*inchar == 'N') {*inchar = 'M';}
if (*inchar == 'O') {*inchar = 'M';}
if (*inchar == 'P') {*inchar = 'O';}
if (*inchar == 'Q') {*inchar = 'E';}
if (*inchar == 'R') {*inchar = 'S';}
if (*inchar == 'S') {*inchar = 'N';}
if (*inchar == 'T') {*inchar = 'Q';}
if (*inchar == 'U') {*inchar = 'D';}
if (*inchar == 'V') {*inchar = 'R';}
if (*inchar == 'W') {*inchar = 'W';}
if (*inchar == 'S') {*inchar = 'Z';}
if (*inchar == 'Y') {*inchar = 'S';}
}
}
inchar++;
}
int main (void)
{
FILE *inputFile;
char inputBuffer[80];
char *inputPtr = inputBuffer;
char inchar;
inputFile = fopen("code.txt", "r");
if (inputFile == NULL)
{
printf("Failed to open\n");
return(0);
}
while ((inchar = fgetc(inputFile)) != EOF)
{
putchar(inchar);
}
inputBuffer[strlen(inputBuffer) - 1] = 0;
encrypt(&inchar);
putchar(inchar);
return(0);
}
書式を修正してください。 「ファイルは暗号化されていません」とはどういう意味ですか(IOW、結果はどのようになっていますか)。デバッガでこれを実行する(またはデバッグ出力を追加する)と、何が表示されますか? – KevinDTimm
'if'の大きなブロックは' if else'sでなければなりません。さもなければ、AをGに、GをUに、UをDに変更します.A、G、Uの全てをD 。 –
私が意味することは、暗号化しないことです。すみませんでした。 – Alaska