Я создаю шифр замещения в c, читая символы из текстового файла и шифруя их. Однако, когда я запускаю программу, текст в файле не зашифрован. Однако я не уверен, что именно мне не хватает. Любая помощь приветствуется.C Замена 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', иначе вы измените A на G, a G на U и U на D, что эффективно отображает все A, G и U в D –
Я имею в виду, что он не шифрует. Извините, что было неясно. – Alaska